ตอนนี้มือถือหรือ 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 ด้วยเลยเขียนติดไปด้วยเลย เวลาใช้งานจริงเอาออกก็ได้เพราะไม่จำเป็น
จบละครับ เขียนห้านาทีก่อนไปทานข้าวเที่ยง 😀