PEAR::Net_UserAgent_Mobile を利用した携帯判別
Net_UserAgent_Mobile
携帯向けのアプリを作るとき、アプリ側で最もほしい情報は、
- キャリア
- 機種
- 識別番号(ユーザー別 or 端末別)
の3つであろう。この情報の取得には、PHP では、PEAR の Net_UserAgent_Mobile というライブラリが便利だ。
情報ソース
前提
私は PHP5 を使っている。PHP4 でもこのライブラリは使える模様。
使い方
たとえばこんな感じ。
<?php require_once('Net/UserAgent/Mobile.php'); $ua = &Net_UserAgent_Mobile::singleton(); # キャリア識別(3大キャリアの他に Willcom も識別可能) と識別番号 switch( true ) { case ($ua->isDoCoMo()): echo "The career is DoCoMo<br/>"; echo "Serial number is " . $ua->getSerialNumber() . "<br/>"; break; case ($ua->isVodafone()): echo "The carrier is Softbank<br/>"; echo "UID is " . $ua->getUID() . "<br/>"; break; case ($ua->isEZweb()): echo "The carrier is Au<br/>"; echo "UID is " . $ua->getUID() . "<br/>"; break; default: echo "something else"; break; } # ユーザエージェント(≒キャリア) $carrier = $ua->getName(); echo "The user agent's name is $carrier<br/> "; # 機種 $model = $ua->getModel(); echo "The model is $model <br/>"; # 画面サイズ echo "Height: " . $ua->getDisplay()->getHeight() . "<br/>"; echo "Width: " . $ua->getDisplay()->getWidth() . "<br/>"; ?>
ひとこと
ときどき、Docomo の携帯の識別に失敗する。(エラーになる) でもソースコードはそれほど難しくないので、ソースを追っかけてみるといいだろう。
「ケータイの端末ID・ユーザIDの取得についてまとめてみました」によれば、Docomo の識別番号の取得は面倒ぽい。(携帯サイト自体に仕掛けを仕込んで置かなければならないため)