大阪で(ry

明治時代の大阪の活気を再び!

大阪の皮を被った、技術メモと開発日記。

IT総合

get_browser関数

ユーザーエージェントからブラウザ名やOS名を取得するのに
PHPではget_browser関数というのがあるらしい

使い方は、先ず
http://tempdownloads.browserscap.com/
ここから環境に見合ったbrowscap.iniをダウンロードする
ライト版とフル版があるが、そこは任意で

次にphp.iniに

[browscap]
browscap = フルパス\browscap.ini

これを追加する

apacheを再起動する

$browser = get_browser(UA);

ってやるとブラウザ情報なりなんなりがオブジェクト形式で返される
配列にしたい場合は

$browser = get_browser(UA, true);

こんな感じ

と、ここまではいいんだけど
こちらの環境(PHP 5.3 64bit Ethnaフレームワーク2.6ベータ4)
だと、正規表現のエラーが出るんだよね
Apacheを起動して最初の実行時は普通に動くんだが、二度目だと
で、Apacheを再起動するとまた使えるようになるが、一度目だけ
CLIからだとまともに動かん

色々と試していると、4-5個辺りからViewClassでヘッダーエラーが発生するようになる
そして、次回は正規表現系のエラーが発生する
なのでEthnaとの組み合わせ独特のもんか?と思ったり
ただ、単独ではまだ試していないけど
3個までだとなんとか安定、つかどうやらpreg_matchとかでiniの内容を総スキャンしているのか
複数個やると結構重たい

因みにiniの内容は700KBとか、それなりにある
因みにググる先生からは回答は得られなかった
個人的には使えそうな関数なので、この辺のトラブルをもう少し調べては見たいと思う