Здрасьте всем, я мало что знаю в 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");}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Есть txt файл в котором есть некий текст:
Подскажите, пожалуйста, как в представлении вывести в ActiveForm checkboxList, значение которые являются объектами модели переданными из контроллера?...
Как правильно сделать мультиязычность в Laravel, что бы язык был в роуте, типа pl/team/1 ?