チップス

wordpressのプラグイン wptouchのソースを見ていたらお勉強になりました


今日は iPhone、androidに最適表示がされるという WordPressプラグインの 「WPtouch」のソースを何気なく見ていました。
 
Nexu 7(2013)のユーザーエージェントをチェックしたり
 

Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JWR66N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.111 Safari/537.36

Android タブレットなら「Android」の文字列を検出
Android スマートフォンなら「Android」&「Mobile」の2つの文字列を検出

で判定するようにします。
 
googleで機種判定して振り分ける方法を検索していたら「PHP で、ユーザーエージェント(iPhone・Android・タブレット・携帯・PC)によってページを振り分ける」という投稿がありました。そのページにサンプルコードが載っていたので引用させていただきます。
 

$ua = $_SERVER['HTTP_USER_AGENT'];

if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) {
    // スマートフォンからアクセスされた場合
    header("Location: smartphone/index.html");
    exit();

} elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) {
    // タブレットからアクセスされた場合
    header("Location: tablet/index.html");
    exit();

} elseif ((strpos($ua, 'DoCoMo') !== false) || (strpos($ua, 'KDDI') !== false) || (strpos($ua, 'SoftBank') !== false) || (strpos($ua, 'Vodafone') !== false) || (strpos($ua, 'J-PHONE') !== false)) {
    // 携帯からアクセスされた場合
    header("Location: mobile/index.html");
    exit();

} else {
    // その他(PC)からアクセスされた場合
    header("Location: pc/index.html");
    exit();
}

   チップス