たぼさんの部屋

いちょぼとのんびり

check.php

  • operamini判定も追加

iPhoneiPad は、ユーザーエージェントにそれぞれ iPhoneiPad という文字が含まれているので簡単に振り分けられるのですが、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();