PHP で User Agent ごとに振り分ける

PHP で iOS、Android 等の SmartPhone、Tablet を User Agent ごとに振り分けます。
PC と表示を切り替えたりするのに使えるかもしれません。
ただし、全ての端末を所有していないので、一部の端末でしか動作を確認していません。

参考させて頂いたサイト
PHPでスマートフォンのUA判別 - adbon.net

Android の User Agent
Google ウェブマスター向け公式ブログ: Android のユーザーエージェントの検出について

<?php
$ua_list = array ( 'iPad','PlayBook','iPod','iPhone','Android','BlackBerry','webOS','Windows Phone OS' );
$ua = "false";
$ua_device = "none";
$ua_mobile = 0;

//Mobile が含まれているか調べる
$ua_mobile = preg_match( '/Mobile/', $_SERVER['HTTP_USER_AGENT'] );

for ( $i = 0; $i < sizeof( $ua_list ); $i++ ) {

 $str = "/".$ua_list[$i]."/i";
 $ret = preg_match( $str, $_SERVER['HTTP_USER_AGENT'] );

 if ($ret != 0 ) {

//device 確認
//  $ua_device = $ua_list[$i];

//iPad
  if ( $ua_list[$i] == "iPad" ) { break; }
//PlayBook
  if ( $ua_list[$i] == "PlayBook" ) { break; }
//Android Tablet
  if ( $ua_list[$i] == "Android" && $ua_mobile == 0 ) { break; }

  $ua = "true";
  break;

 }

}

//確認用
//echo($_SERVER['HTTP_USER_AGENT']);
//echo($ua_device);
//echo($ua_mobile);
?>

Android では、SmartPhone は User Agent に "Mobile" が含まれているが Tablet には含まれておらず、そこで判別が出来るらしいです。
ですが、iOS だと iPad にも "Mobile" が含まれているので SmartPhone として判別されてしまいます。(iOS 5 beta 4で確認)なので、真っ先に "iPad" で break させて PC として振り分けています。同様に Android Tablet と PlayBook も PC として振り分けています。
念の為、"Mobile" が含まれているかは別で確認しています。

iPhone と iPod touch で振り分ける場合も、iPod touch の User Agent に "iPhone" が含まれているので、先に "iPod" で判別して break してしまうのが簡単だと思います。

BlackBerry PlayBook と webOS の User Agent には、それぞれ "PlayBook"、"webOS" が含まれているそうです。

BlackBerry PlayBook Simulator adds support for the BlackBerry Browser - BlackBerry Developer's Blog
Forums webOS • View topic - How can I use my own User-Agent in webOS?

Windows Phone 7 は "Windows Phone OS 7.0"、Mango は "Windows Phone OS 7.5" となっているそうなので、"Windows Phone OS" で判別出来るのかなと。

Windows Phone 7 user agent
Windows Phone の User Agent - 高橋 忍のブログ - Site Home - MSDN Blogs

確認出来たのは iPhone, iPad, iPod touch だけです。
BlackBerry は Bold9000 を持っていますが、有効な SIM が無いので Web に接続できず確認出来ませんでした。
Android, PlayBook, webOS, Windows Phone 7 は所有していないので、こちらも確認は出来ていません。

Appshocker

HonyaClub.com

リンクシェア アフィリエイト紹介プログラム