PHP get_browser: как определить ie7 против ie6? - PullRequest
2 голосов
/ 25 июня 2009

Есть ли способ отличить IE7 от IE6, используя PHP функцию get_browser ()?

Ответы [ 5 ]

27 голосов
/ 25 июня 2009

Вы можете сделать так:

$browser = get_browser();

if($browser->browser == 'IE' && $browser->majorver == 6) {
    echo "IE6";
} elseif($browser->browser == 'IE' && $browser->majorver == 7) {
    echo "IE7";
}

Быстрый просмотр официальной документации get_browser() ответит на ваш вопрос. Всегда читайте документацию раньше.

4 голосов
/ 13 июня 2012

Я прочитал, что get_browser () является относительно медленной функцией, поэтому я искал что-то более быстрое. Этот код проверяет MSIE 7.0, выводя «Otay!» если правда. Это в основном тот же ответ, что и в предыдущем посте, только более краткий. Довольно простое утверждение:

<?php 
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0'))
    echo 'Otay!';
?>
3 голосов
/ 25 июня 2009

Ниже приведен полный пример, взятый из здесь .

$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" />';
}
2 голосов
/ 25 июня 2009

Если ваша логика состоит в том, чтобы решить, какие таблицы стилей или сценарии включить, возможно, стоит перейти к 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 .

0 голосов
/ 24 августа 2009

Я нашел другое, действительно простое решение для условного 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/

...