チップス
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
- Google Nexus 7 - Nexus 7 のユーザーエージェント一覧
- userAgent(ユーザーエージェント一覧)
- Android のユーザーエージェントの検出について by Google Webmaster Central Blog
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();
}