携帯サイトを作る場合、機種判定が必要になる場合が多いと思います。

今回は、機種判定を簡単に行ってくれるライブラリ、PEAR::Net_UserAgent_Mobileをご紹介します。

まず、PEAR::Net_UserAgent_Mobileをインストールします。このライブラリはベータ版なので、pearコマンドを使って

pear install Net_UserAgent_Mobile-alpha

で、インストールすることが出来ます。

インストールできたら、さっそく使ってみましょう。以下は、アクセスしてきた端末のキャリアと型番を表示するサンプルプログラムになります。

<?php
// ここのインクルード指定は、Net_UserAgent_Mobileの配置場所に応じて適宜変更して下さい。
include_once('Net/UserAgent/Mobile.php');

$agent Net_UserAgent_Mobile::factory();
//型番の入手
$model $agent->getModel();

if (
$agent->isDoCoMo()) {
echo(
"お使いの機種はDoCoMoの{$model}です。");
} else if (
$agent->isVodafone()) {
echo(
"お使いの機種はVodafoneの{$model}です。");
} else if (
$agent->isEZweb()) {
echo(
"お使いの機種はEZwebの{$model}です。");
}
?>

このように、Net_UserAgent_Mobile::factory()メソッドでインスタンスを作った後、メソッドを通じて機種判定などの処理を行えます。

getModel()
型番の文字列を返す
isDoCoMo()、isVodafone()、isEZweb()
各キャリアの端末ならtrue、そうでなければfalse

他にも、機種判定用の便利なメソッドが用意されています。

isFOMA()
DoCoMoのFOMA端末ならtrue、そうでなければfalse
isWAP1(), isWAP2()
それぞれEZwebのWAP1(WAP2)端末ならtrue、そうでなければfalse

また、factoryメソッドでは、ユーザーエージェントを引数に指定することで、特定の端末の情報を取得することができます。

$user_agent = 'DoCoMo/2.0 N900iS(c100;TB;W24H12)';
$agent = Net_UserAgent_Mobile::factory($user_agent);

こうすることで、実機でアクセスしなくてもユーザエージェントが分かれば情報を入手することが可能です。

この他にも、多くの便利なメソッドが用意されています。執筆時点ではまだベータ版ですが、携帯サイトを作成する上で非常に便利なライブラリです。