2

PHP の get_browser() 関数を使用して IE7 と IE6 を区別する方法はありますか?

4

5 に答える 5

27

あなたはそのようにすることができます:

$browser = get_browser();

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

公式get_browser()ドキュメントをざっと見てみると、あなたの質問に答えることができます。必ず前にドキュメントを読んでください。

于 2009-06-25T04:30:16.607 に答える
4

get_browser() は比較的遅い関数であると読んだので、より高速なものを探していました。このコードは MSIE 7.0 をチェックし、「Ota!」を出力します。真であれば。基本的には前の投稿と同じ答えですが、より簡潔です。非常に簡単な if ステートメント:

<?php 
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0'))
    echo 'Otay!';
?>
于 2012-06-13T16:01:36.967 に答える
3

以下は、ここから抜粋した完全な例です。

$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" />';
}
于 2009-06-25T04:30:39.163 に答える
2

含めるスタイルシートまたはスクリプトを決定することがロジックの場合は、条件付きコメントの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をご覧ください。

于 2009-06-25T08:21:34.417 に答える
0

自分の目的のために編集できる、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/

于 2009-08-24T19:59:39.157 に答える