PEAR::Net_UserAgent_Mobileで携帯ユーザーエージェント情報を取得する

By nakayama - 08/11/19 - このエントリをはてなブックマークに追加このエントリをYahoo!ブックマークに追加このエントリをdel.icio.usに追加このエントリをFC2ブックマークに追加

携帯の機種名やキャリア名など今まで自作のライブラリを使ってきましたが
今年に入ってPEARのNet_UserAgent_Mobileが正式にリリースされましたので試しました。


インストール

#pear install Net_UserAgent_Mobile

ライブラリ読み込み

require_once('Net/UserAgent/Mobile.php');

$agent = &Net_UserAgent_Mobile::factory();


キャリア共通で使える関数

※ユーザーエージェント「DoCoMo/2.0 SH905i(c100;TB;W24H16)」でアクセスしました。

//機種名取得
$agent->getModel(); //SH905i

//キャリア名取得
$agent->getName();  //DoCoMo

//携帯か
$agent->isMobile(); //true

//タイプ判別
$agent->isDoCoMo(); // [ドコモか判別]
$agent->isEZweb     // [EZWEBか判別]
$agent->isSoftBank  // [ソフトバンクか判別]
$agent->isWillcom   // [ウィルコムか判別]

//ユーザーエージェント取得
$agent->getUserAgent(); //DoCoMo/2.0 SH905i(c100;TB;W24H16)

//シリアルナンバー取得
$agent->getUID();

使ってみた感想

キャリアを判別するのには便利ですが、もう少し詳しい下記のような情報を取ろうとするとまだ難しそうです。

・ブラウザのバージョン //ドコモだけ対応 getHTMLVersion
・縦横ピクセルサイズ //ドコモだけ対応 getSize
・GPS対応判別 //ドコモだけ対応 isGPS
・FLASH Liteの対応バージョン
・表示可能ファイル容量
・対応可能音源
・アプリ使用可能容量

縦横サイズはリファレンスを見ると getDisplayで取得出来るっぽかったのですが
実際試して見るとドコモでしか取得出来ませんでした。

 $agent = &Net_UserAgent_Mobile::factory();
 $display = $agent->getDisplay();
 
 $width  = $display->getWidth(); //横サイズ取得
 $height = $display->getHeight(); //縦サイズ取得
 list($width, $height) = $display->getSize(); //縦横サイズ取得