Здрасьте всем, я мало что знаю в php, поэтому и спрашиваю. Я нашел вот эту функцию:
function getInfoBrowser(){
$agent = $_SERVER['HTTP_USER_AGENT'];
preg_match("/(MSIE|Opera|Firefox|Chrome|Safari|Chromium|Version)(?:\/| )([0-9.]+)/", $agent, $bInfo);
$browserInfo = array();
$browserInfo['name'] = ($bInfo[1]=="Version") ? "Safari" : $bInfo[1];
$browserInfo['version'] = $bInfo[2];
return $browserInfo;}
досоздал вот так: $browser = getInfoBrowser(); var_dump($broswer);
,все отлично вывело
но мне надо перенаправлять пользователей старых браузеров (Chrome lt 8.0, Safari lt 5.0, Firefox lt 4.0, MS IE lt 9.0, Opera lt 8.2) на страницу OldBroswer.php при условии что например значение ['name'] = 'Chrome' а ['version'] = <8.0, как это реализовать?
Версия может принимать вид, например, 56.0.2924.87 и во float вы не переведёте. Как вариант реализовать функцию, которая сравнивает 2 строки, например true - версия больше сравниваемого значения, false - наоборот, -1 - равны :
function compareVersion($version, $compare) {
$versionArr = explode('.',$version);
$compareArr = explode('.',$compare);
$len = count($versionArr) - count($compareArr);
if($len > 0) {
$compareArr = array_pad($compareArr,count($versionArr), 0 );
}
if($len < 0) {
$versionArr = array_pad($versionArr,count($compareArr), 0 );
}
for($i = 0; $i < count($versionArr); $i++) {
if((int)@$versionArr[$i] > (int)@$compareArr[$i]) {
return true;
} else if((int)@$versionArr[$i] < (int)@$compareArr[$i]) {
return false;
}
}
return -1;
}
compareVersion($browserInfo['version'], '55.0.29955');
В принципе, я подумал, что так тоже норм, так как мне не нужна супер точная система детекции.
$browserInfo = getInfoBrowser();
$roughVersion = floatval($browserInfo['version']);
$name = $browserInfo['name'];
if(stristr($name, "Chrome") && $roughVersion <= 8){
header("Location: OldBrowser");}
else if (stristr($name, "Firefox") && $roughVersion <= 4){
header("Location: OldBrowser");}
else if (stristr($name, "Safari") && $roughVersion <= 5){
header("Location: OldBrowser");}
else if (stristr($name, "MSIE") && $roughVersion <= 9){
header("Location: OldBrowser");}
else if (stristr($name, "Opera") && $roughVersion <= 9){
header("Location: OldBrowser");}
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники