🍃このブログは移転しました。
3秒後、自動的に移動します・・・。

PHPでスマートフォンやタブレットの判別をするなら

参考: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