13

以下のコードを使用してユーザーエージェントを見つけ、

    $user_agent = $_SERVER['HTTP_USER_AGENT']; 
    if (preg_match('/MSIE/i', $user_agent)) { 
       echo "Internet Explorer";
    }
    if (preg_match('/Firefox/i', $user_agent)) { 
       echo "FireFox";
    }
    if (strpos( $user_agent, 'Chrome') !== false)
    {
        echo "Google Chrome";
    }
    if (strpos( $user_agent, 'Safari') !== false)
    {
       echo "Safari";
    }
    if (preg_match('/Opera/i', $user_agent)) { 
       echo "Opera";
    }

    ?>

しかし、私のクロムブラウザは突然ユーザーエージェントの下に戻ります

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.155 Safari/537.22

safari と chrome という単語が含まれているため、両方のブラウザ名が表示されます。これに対する解決策は何ですか。ありがとうございます。

4

2 に答える 2

22

Chrome のユーザー エージェントには含まれていますSafariが、Safari のユーザー エージェントには含まれていないChromeため、次を使用しますif ... elseif

if (stripos( $user_agent, 'Chrome') !== false)
{
    echo "Google Chrome";
}

elseif (stripos( $user_agent, 'Safari') !== false)
{
   echo "Safari";
}

注:大文字と小文字の違いを説明するためstriposに代わりに使用してください。strpos

于 2013-03-07T13:14:08.327 に答える
3

これを試して :

$browser = get_browser(null, true);
print_r($browser);

From doc : browscap.ini ファイルでブラウザーの情報を検索することにより、ユーザーのブラウザーの機能を判別しようとします。

参照: http://php.net/manual/en/function.get-browser.php

于 2013-03-07T13:14:16.527 に答える