参考:php-mobile-detect - The lightweight PHP class for detecting mobile devices. - Google Project Hosting
コレは良さそう!
軽くUAだけ正規表現でかっさらって、大雑把にタブレットかSPかを判別するのでも良かったんですけど、どうせなら徹底的にやりたいと思い。
使い方を軽くメモ。
読み込む
<?php include 'Mobile_Detect.php'; $detect = new Mobile_Detect();
準備としてはコレだけ。
これでもうdetectインスタンスからアレコレできるようになります。
使い方
スマートフォン(モバイル)の判別
<?php if ($detect->isMobile()) { // 携帯端末 }
タブレットの判別
<?php if ($detect->isTablet()) { // タブレット端末 }
パソコンの判別
<?php if (!$detect->isMobile() && !$detect->isTablet()) { // パソコン }
処理を固める
<?php function isPC(){ require_once('Mobile_Detect.php'); $detect = new Mobile_Detect; $_SESSION['isPC'] = ($detect->isMobile() || $detect->isTablet()) ? false : true; return $_SESSION['isPC']; }
これを定義しておけばあとは・・
<?php if($_SESSION['isPC'] || isPC()): ?> // PC向け処理 <?php else: ?> // PC以外向け処理 <?php endif; ?>
テンプレートの中で2分して、PC用とそれ以外が書けるようになりますね。
ほんとはファイルも分けたいけど、まぁいろいろ事情があって・・な場合には使えると思います。
その他のメソッド
- isMobile()
- isTablet()
これ以外に、下記のメソッドが使えて端末の判別ができます。
この守備範囲はさすがですね。
Phones
- isiPhone()
- isBlackBerry()
- isHTC()
- isNexus()
- isDellStreak()
- isMotorola()
- isSamsung()
- isSony()
- isAsus()
- isPalm()
- isGenericPhone()
Tablets
- isBlackBerryTablet()
- isiPad()
- isKindle()
- isSamsungTablet()
- isHTCtablet()
- isMotorolaTablet()
- isAsusTablet()
- isNookTablet()
- isAcerTablet()
- isYarvikTablet()
- isGenericTablet()
Operating systems
- isAndroidOS()
- isBlackBerryOS()
- isPalmOS()
- isSymbianOS()
- isWindowsMobileOS()
- isiOS()
- isFlashLiteOS()
- isJavaOS()
- isNokiaOS()
- iswebOS()
- isbadaOS()
- isBREWOS()
Mobile browsers
- isChrome()
- isDolfin()
- isOpera()
- isSkyfire()
- isIE()
- isFirefox()
- isBolt()
- isTeaShark()
- isBlazer()
- isSafari()
- isMidori()
- isGenericBrowser()
聞いたこともない名前がたくさんあります・・。
ってか、こんだけあるなら、isPC()ってあってもいいと思うの・・w