check.php
- operamini判定も追加
iPhone と iPad は、ユーザーエージェントにそれぞれ iPhone、iPad という文字が含まれているので簡単に振り分けられるのですが、Android はスマートフォンとタブレットの両方に Android という文字が含まれているので、[Android]の文字だけではどちらの端末なのか判断がつきません。
Android のユーザーエージェントを検出する時は、是非「android」だけでなく 「mobile」という文字も検出してください。
Android のユーザーエージェントの検出について – Google ウェブマスター向け公式ブログ
ということなので、
・Android のスマートフォンの場合は、[Android] と [Mobile] の文字を検出
・Android のタブレットの場合は、[Android] の文字を検出
で振り分け処理をしたいと思います。
新check.php
<?php <?php /* * ver 2 * 初期判定を行います。 * 通過したらcontroll.phpをコールします。 */ function init() { $ua = $_SERVER['HTTP_USER_AGENT']; $isSmart = false; if ((strpos($ua, 'Android') !== false) && (strpos($ua, 'Mobile') !== false) || (strpos($ua, 'iPhone') !== false) || (strpos($ua, 'Windows Phone') !== false)) { //android,iphone,windowsPhone $isSmart = true; } elseif ((strpos($ua, 'Android') !== false) || (strpos($ua, 'iPad') !== false)) { // タブレットからアクセスされた場合:なにもしない。 $isSmart=false; } //スマートフォンの場合でもoperaminiかどうさ再度判定 if(strpos($ua, 'Opera Mini') !== false){ //operamini スマホプログラムは動作させない。 $isSmart=false; } if ($isSmart) { require "controll_4.php"; new Controller(); exit(); } } init();
古いcheck.php
<?php /* * 初期判定を行います。 * 通過したらcontroll.phpをコールします。 */ function init() { $ua = $_SERVER['HTTP_USER_AGENT']; // $needles = array("iPhone", "Android", "Mobile"); $needles = array("iPhone", "Android"); $isSmart = false; for ($i = 0; $i < count($needles); $i++) { if (strpos($haystack, (string)$needles[$i]) !== false) { $isSmart = true; } } if ($isSmart) { // require_once "controll_2.php"; // require_once "controll_3.php"; // menu href 絶対パスに変更に伴い、controll_4.phpへ。 require "controll_4.php"; new Controller(); exit(); } } init();