mobile
pearで携帯の画面サイズ取得
木曜日, 3 月 26th, 2009携帯サイトをつくろうと思い立ちました。
写真画像の表示がメインのコンテンツです。
当然、端末の画面サイズに合わせて写真もリサイズして表示したい。
各キャリアのサイトにあるスペック一覧のデータをシコシコとテキストファイルに書いて・・・、というやり方では新機種が出るたびに更新作業をしなければいけないので却下。
で、いろいろと調べると、pearに「Net_UserAgent_Mobile」なんてものがあるそうです。
さっそくインストール。
# pear install -f Net_UserAgent_Mobile
(2009/03/26時点でBETA版なので「-f」が必要)
サンプルのソースを書いてみる。
—–
require_once(”Net/UserAgent/Mobile.php”);
$agent = &Net_UserAgent_Mobile::factory();
if($agent->isDoCoMo()){
echo “docomoだよ”;
}
elseif($agent->isVodafone()){
echo “softbankだよ”;
}
elseif($agent->isEZweb()){
echo “auだよ”;
}
else{
echo “それ以外だよ”;
}
$disp = $agent->getDisplay()
$dispsize = $disp->getSize();
echo “横は” . $dispsize[0] . “で、縦は” . $dispsize[1] . “だよ”;
—–
OK。縦横とれた。
これは便利だ。
ただ、DoCoMoは端末リスト(XMLファイル)を別途用意しないといけないらしい。インストールされたソースを見ると、たしかに機種情報がベタ書きしてある。これでは最新機種に対応できないね。
このXMLファイルもコマンド一発でつくれるらしい。
CPANのHTTP-MobileAgentにmakexmldocomomapというのがあって、こいつを動かすとサクッと作れるそうです。
ではインストール。
いろいろ足りないのがあって結構てこずった。
# cpan
cpan> install HTTP::MobileAgent
cpan> install XML::SAX::Expat
cpan> install XML::Simple
cpan> install HTML::TableExtract
cpan> install WWW::MobileCarrierJP
インストール完了。
よし、早速やってみよう。
・・・と思ったら
あれ
makexmldocomomapが見つからない。
小一時間探してこんなところに見つけました。
/root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap
で、これを実行すると、
画面にズラズラとXMLが表示される。
お、標準出力じゃん。
# /root/.cpan/build/HTTP-MobileAgent-0.27/bin/makexmldocomomap > DoCoMoMap.xml
これでOK。
さっきのサンプルソースに1行追加。
—–
$_SERVER["DOCOMO_MAP"] = “/path/DoCoMoMap.xml”;
—–
完璧です。
あとはこのXMLが定期的に更新されるようにしてやれば言うことなしです。
参考URL
Net_UserAgent_Mobileを使って、携帯端末の情報を取得
PEAR::Net_UserAgent_Mobile 3G対応携帯判別(ケータイ判別)
DoCoMoマップ利用 PEAR::Net_UserAgent_Mobile_DoCoMoDisplayMap
↓役に立ったと思ったら・・・

