ตอนนี้มือถือหรือ tablet กำลังเป็นที่นิยมมากมาย เวลาเขียนเว๊ปส่วนใหญ่เราก็จะแยกเป็นหน้าสำหรับมือถือซึ่งเราก็ต้องทำการตรวจสอบก่อนว่าคนที่เข้ามาดูใช้มือถือหรือ tablet หรือเข้ามาจาก pc ปกติ สำหรับคนที่ตั้ง server เอง เราสามารถลงโมดูล Apache Mobile Filter แล้วไปจับที่ AMFLightDetectionFilter แทน แต่ถ้าเราเช่าพื้นที่จากคนอื่นละ ก็ไม่ยากเลย ใช้ php นี่แหละจับเอา โดยจับเอาจากตัวแปร $_SERVER[‘HTTP_USER_AGENT’] แล้วเราก็มาแยกเอาว่าเป็นอุปกรณ์มือถือหรือเปล่าจากตรงนี้ได้

โค๊ดสำหรับตรวจสอบผมเขียนเป็นฟังก์ชั่นให้แล้ว สามารถใช้กับมือถือในปัจจุบันได้มากพอสมควร ส่วนรุ่นเก่าๆ คงปล่อยไป เพราะไม่ค่อยจะมีคนใช้กันละ ตอนนี้จับแต่เครื่องในกระแสก็พอ 🙂

	function mobileDetect() {
		$_SESSION['mobile-detect'] = array();
		switch(true) {
			case (preg_match("/ipad/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'iPad';
				$_SESSION['mobile-detect']['manu'] = "Apple";
				return true;
			break;
			case (preg_match("/ipod/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'iPod';
				$_SESSION['mobile-detect']['manu'] = "Apple";
				return true;
			break;
			case (preg_match("/iphone/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'iPhone';
				$_SESSION['mobile-detect']['manu'] = "Apple";
				return true;
			break;
			case (preg_match("/android/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'Android';
				$_SESSION['mobile-detect']['manu'] = "Google";
				return true;
			break;
			case (preg_match("/blackberry/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'Blackberry';
				$_SESSION['mobile-detect']['manu'] = "RIM";
				return true;
			break;
			case (preg_match("/blackberry/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'Blackberry';
				$_SESSION['mobile-detect']['manu'] = "RIM";
				return true;
			break;
			case (preg_match("/windows ce; smartphone;|windows ce; iemobile/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'WindowsCE';
				$_SESSION['mobile-detect']['manu'] = "Microsoft";
				return true;
			break;
			case (preg_match("/touchpad|hpwos/i", $_SERVER['HTTP_USER_AGENT']));
				$_SESSION['mobile-detect']['device'] = 'HP TouchPad';
				$_SESSION['mobile-detect']['manu'] = "HP";
				return true;
			break;
			default:
				return false;
			break;
		}
	}

โค๊ดนี้ใช้งานจริง ใน spec เขาให้เก็บค่าลง session ด้วยเลยเขียนติดไปด้วยเลย เวลาใช้งานจริงเอาออกก็ได้เพราะไม่จำเป็น

จบละครับ เขียนห้านาทีก่อนไปทานข้าวเที่ยง 😀

Comments

จำนวนความเห็น