jigen, Hirotomo Kunimatsu
Tokyo, Japan
mailto: microformat hcard
top

PHPでブラウザ判別 – get_browser

(写真):PHPでブラウザ判別 - get_browserjavascriptファイルやcssファイル等をブラウザごとに振り分ける場合、もちろんcss、javascript単体でも出来るのですがサーバーサイドで行う事もできるとかなり便利です。PHPの場合はget_browserという標準関数があってユーザのプラットフォームの情報が取得できるのですが、結構用意が必要なのでちょっと紹介。

この関数USER_AGENTを判別をしてオブジェクトを返してくれるという関数なのですが、オプションを指定すると配列を返す事も可能みたいです。以下の例だとUSER_AGENTを配列に分割して返す形になります。

<?php
$platform = get_browser(null, true);
echo '<pre>';
print_r($platform);
echo '</pre>';
?>
<?php
Array
(
    [browser_name_regex] => ^mozilla/5\.0 (windows; .; windows nt 5\.1; .*rv:.*) gecko/.* firefox/0\.9.*$
    [browser_name_pattern] => Mozilla/5.0 (Windows; ?; Windows NT 5.1; *rv:*) Gecko/* Firefox/0.9*
    [parent] => Firefox 0.9
    [platform] => WinXP
    [browser] => Firefox
    [version] => 0.9
    [majorver] => 0
    [minorver] => 9
    [css] => 2
    [frames] => 1
    [iframes] => 1
    [tables] => 1
    [cookies] => 1
    [backgroundsounds] =>
    [vbscript] =>
    [javascript] => 1
    [javaapplets] => 1
    [activexcontrols] =>
    [cdf] =>
    [aol] =>
    [beta] => 1
    [win16] =>
    [crawler] =>
    [stripper] =>
    [wap] =>
    [netclr] =>
)
?>

こんな感じでjavascriptが可能かどうかや、ブラウザのメジャーバージョンまで返してくれるのでかなり便利なget_browserですが、サーバー側のphp.iniの設定が必要になります。

まず、Browser Capabilities Projectから最新のphp_browscap.iniファイルをダウンロードしてきます。リンク先の上から三番目のファイルです(Use only with PHP!と書いてある奴)。それをサーバーの任意の場所にアップロードしてphp.ini内で場所を指定してあげます。

[browscap]
browscap = /path/to/php_browscap.ini

上記設定をしてからサーバー再起動して使えるようになる。この情報を元に振り分けてあげればOKかなっと。


関連エントリー

よろしければ、以下リンクよりコメントをどうぞ。
2006/12/24 19:00:49200619:00
アリ「ここからメニューだすよ」
アリ「ごちそういっぱーい」
アリ「腹へったー」
アリ「働けー働けー♪」