PHPで携帯電話からのアクセスかを判別するスクリプト書いた(その3)
前回までのソースを0からファクトリーパターンで書き直したことで拡張性が増した。
ここにはソース全て書ききれないのでスクリプトの詳細な解説は省きます。
ソースのDL:夢幻
変更点
-
- ファクトリーパターンで0から書き直した。
- Net_UserAgent_Mobileで取得出来る端末情報が取り出せるようになった。
利用方法
<? include_once("CheckMobile.php"); try { $mb = CheckMobile::factory(); } catch (CheckMobile_Exception $e) { var_dump($e->getMessage()); exit(); } if($mb->Check()===TRUE){ print"携帯からのアクセスです"; $mb->getObject()->getUID(); //個体識別番号 if($mb->getObject()->isEZweb()){ print "auからのアクセスです"; }else{ print "その他機種からのアクセスです"; } }else{ print"携帯以外からのアクセスです"; } $mb->GetDoctype(); $mb->GetHtmlTags(); $mb->GetContentType(); ?>
メソッド解説
static object factory()
ユーザーエージェントによる簡易的な機種判別をします。
object getObject()
携帯端末の情報が入ったオブジェクトを取得できます。
メソッドはこちらを参照してください
Net_UserAgent_Mobile
http://pear.php.net/package/Net_UserAgent_Mobile/docs
bool Check()
IPアドレス帯域でより厳格な判別を行います。
携帯ならばTrueが返りそれ以外ならFalseが返ります。
String GetDoctype();
各機種に対応したXHTML1.0
準拠のドキュメントタイプが返されます
auの場合、
<!DOCTYPE html PUBLIC \"-//OPENWAVE//DTD XHTML 1.0//EN\" \"http://www.openwave.com/DTD/xhtml-basic.dtd\" />となります。
String GetHtmlTags();
各機種に対応したXHTML1.0
準拠のHTMLタグが返されます
auの場合、
<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"ja\" xml:lang=\"ja\" />
となります。