PEAR::Net_UserAgent_Mobile用のi-mode機種情報xml

2020-10-28 追記

最新の PEAR::Net_UserAgent_Mobile 1.0.0 には、全てのi-mode機種情報が登録されています。

CDROM収録のdocomo_netuamobile.xml を使う必要はありません。

7行目を削除してください。

修正前

7: $_SERVER['DOCOMO_MAP'] = dirname(__FILE__) . "/docomo_netuamobile.xml";
8: $agent = &Net_UserAgent_Mobile::factory();
9: $display = $agent->getDisplay();
Code language: plaintext (plaintext)

修正後

7: 
8: $agent = &Net_UserAgent_Mobile::factory();
9: $display = $agent->getDisplay();
Code language: plaintext (plaintext)

2008-09-21

Smarty動的Webサイト構築入門の5.3 Smartyとケータイで、PEAR::Net_UserAgent_Mobileパッケージを使っています。このパッケージは外部ファイルからi-mode機種情報を読み込むことができます。本の付録CDROMに、筆者作成のdocomo_netuamobile.xmlを収録しました。

ところが、このdocomo_netuamobile.xmlには不具合があり、下から5~6行目の「SO902WP+」以降を正しく読み込みません。次の2点の修正が必要です。

1点目は、docomo_netuamobile.xmlです。「SO902IWP+」ではなく、「SO902IWPplus」とします。

2点目は、keitai_ini.phpを修正して、「SO902IWP+」自体を認識できるようにします。SO902IWP+の場合は、Net_UserAgent_Mobile内部の機種情報を使い、そうでない場合は、docomo_netuamobile.xmlを使うようにします。

修正前
7: $_SERVER['DOCOMO_MAP'] = dirname(__FILE__) . "/docomo_netuamobile.xml";
8: $agent = &Net_UserAgent_Mobile::factory();
9: $display = $agent->getDisplay();
修正後

7:  if ( ! preg_match('/SO902IWP[+]/', $_SERVER['HTTP_USER_AGENT']) ) {

8:     $_SERVER['DOCOMO_MAP'] = dirname(__FILE__) . "/docomo_netuamobile.xml";

9:   }

10: $agent = &Net_UserAgent_Mobile::factory();

11: $display = $agent->getDisplay();
タイトルとURLをコピーしました