【PHPで作る】初めての携帯サイト構築

第2回 携帯キャリアと端末を判別する

この記事を読むのに必要な時間:およそ 2 分

Net_UserAgent_Mobile

「Net_UserAgent_Mobile」はキャリアや機種などの情報を簡単に取得することができるPEARライブラリです。早速インストールをしてみましょう。

Net_UserAgent_Mobileのインストール方法

# pear install Net_UserAgent_Mobile-beta

Net_UserAgent_Mobileはベータバージョンのため,そのままではインストールできません。⁠-beta」を付記してインストールを行ってください。

では実際にキャリアと端末の情報を取得するプログラムを書いてみましょう。

コード1 キャリアと端末を取得するプログラム

<?php

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

// Net_UserAgent_Mobileをインスタンス化する
$agent = Net_UserAgent_Mobile::singleton();

// キャリアをチェックする
if ($agent->isDoCoMo()) {
    // docomo
    $carrier = 'docomo';
    
} else if ($agent->isEZweb()) {
    // au
    $carrier = 'au';

} else if ($agent->isSoftBank()) {
    // SoftBank / Vodafone / J-PHONE
    $carrier = 'softbank';
    
} else {
    // 携帯以外の場合
}
    
// 機種名をチェックする
$model = $agent->getModel();

echo '[キャリア]' . $carrier;
echo '[機種]:' . $model;

}

?>

これでキャリアと端末の情報が取得できました。1つ気をつけることは,auの場合は一般的な機種名が取得できない点です。例えばW51SAの場合「SA39」といった文字列が返ってきます。これはauが内部で管理しているデバイスIDで機種名ではありません。そのため一般的な機種名が欲しい場合はデバイスIDを元に機種名に自前で変更する必要があります。

またNet_UserAgent_Mobileはキャリアや端末の情報だけでなく,端末タイプや画面の幅,表示色数なども簡単に取得することができます。キャリアや機種ごとに表示を変えたい携帯端末では重宝するライブラリでしょう。ただしGPSの対応機種や利用できる画像フォーマット,Flash Liteの対応状況などユーザーエージェントに書かれていない情報までは網羅できません。この辺りを含めたキャリア・機種判別が必要な場合は,別途データベースなどを持つなどして情報を追加する必要があります。


今回は携帯サイト開発のコアとなるキャリアと機種判別について説明してきました。次回は携帯サイトを作る上で気をつけるべき文字コードの取り扱いについて見ていきたいと思います。

著者プロフィール

荒木稔(あらきみのる)

京都出身。ホテルマンを経て,基幹システムの開発などに従事した後ウェブクリエイターとして独立。利用者にもっと近いサービスを提供したい想いから,携帯を中心とした企画/開発/執筆/講演活動を行う。近著に「PHP×携帯サイト デベロッパーズバイブル」(ソフトバンククリエイティブ)。家族のための携帯サイト「ファミリーモバイル」(http://www.fmob.jp)を立ち上げ現在に至る。

memokamihttp://memokami.com