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

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です。「SO902WP+」ではなく、「SO902WPplus」とします。

2点目は、keitai_ini.phpを修正して、「SO902WP+」自体を認識できるようにします。SO902WP+の場合は、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();

Smarty動的Webサイト構築入門
Amazon.co.jpの詳細ページへ