Recent Posts

Archives

Blog Ranking

Favorite

ExchangeRate

Update: 2012-02-07 21:00
by ロイター
 

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

↓役に立ったと思ったら・・・