Есть ли способ отличить IE7 от IE6, используя функцию PHP get_browser()?
PHP get_browser: как отличить ie7 от ie6?
Ответы (5)
Вы можете сделать это так:
$browser = get_browser();
if($browser->browser == 'IE' && $browser->majorver == 6) {
echo "IE6";
} elseif($browser->browser == 'IE' && $browser->majorver == 7) {
echo "IE7";
}
Быстрый просмотр официальной документации get_browser()
поможет ответить на ваш вопрос. . Всегда читайте документацию перед этим.
Я читал, что get_browser() — относительно медленная функция, поэтому я искал что-то более быстрое. Этот код проверяет наличие MSIE 7.0 и выводит "Otay!" если правда. Это в основном тот же ответ, что и предыдущий пост, только более краткий. Довольно простой оператор if:
<?php
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0'))
echo 'Otay!';
?>
Ниже приведен полный пример, взятый из здесь.
$browser = get_browser();
switch ($browser->browser) {
case "IE":
switch ($browser->majorver) {
case 7:
echo '<link href="ie7.css" rel="stylesheet" type="text/css" />';
break;
case 6:
case 5:
echo '<link href="ie5plus.css" rel="stylesheet" type="text/css" />';
break;
default:
echo '<link href="ieold.css" rel="stylesheet" type="text/css" />';
}
break;
case "Firefox":
case "Mozilla":
echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
break;
case "Netscape":
if ($browser->majorver < 5) {
echo '<link href="nsold.css" rel="stylesheet" type="text/css" />';
} else {
echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
}
break;
case "Safari":
case "Konqueror":
echo '<link href="gecko.css" rel="stylesheet" type="text/css" />';
break;
case "Opera":
echo '<link href="opera.css" rel="stylesheet" type="text/css" />';
break;
default:
echo '<link href="unknown.css" rel="stylesheet" type="text/css" />';
}
Если ваша логика заключается в том, чтобы решить, какие таблицы стилей или скрипты включить, возможно, стоит пойти по маршруту HTML с условными комментариями:
<!--[if IE 6]>
According to the conditional comment this is Internet Explorer 6<br />
<![endif]-->
<!--[if IE 7]>
According to the conditional comment this is Internet Explorer 7<br />
<![endif]-->
Таким образом вы обойдете любые пользовательские строки браузера и тому подобное. Дополнительные сведения см. на странице QuirksMode.
Я нашел другое, действительно простое решение для условного выражения PHP IE6, которое я смог отредактировать для своих целей:
<?php
// IE6 string from user_agent
$ie6 = "MSIE 6.0";
// detect browser
$browser = $_SERVER['HTTP_USER_AGENT'];
// yank the version from the string
$browser = substr("$browser", 25, 8);
// if IE6 set the $alert
if($browser == $ie6){
// put your code here
}
?>
Полный сценарий можно найти здесь:
http://www.thatgrafix.com/php_detect/