สร้างฟังก์ชัน ตรวจสอบ การเข้าเว็บไซต์ ผ่านมือถือ ด้วย php
17 June 2010สำหรับคนที่ต้องการกำหนดเงื่อนไข ในการเข้าชมเว็บไซต์ ตัวอย่าง กรณีผู้ใช้งานเข้าชมเว็บไซต์ผ่านมือถือ สามารถใช้ฟังก์ชันนี้ ในการกำหนดตัวเลือกว่าต้องการเข้าเว็บเวอร์ชั่นปกติ หรือเวอร์ชั่นสำหรับมือถือ หรือใช้กำหนดให้ลิ้งค์เว็บไซต์เวอร์ชั่นมือถืออัตโนมัติ เป็นต้น
แนะนำ 2 ฟังก์ชัน isMobileCheck() และ isMobileCheck2() โดยการทำงานของฟังก์ชันแรก จะเร็วกว่าฟังก์ชันที่สอง แต่ไม่ต่างกันมาก สามารถสร้างไฟล์ทดสอบ แล้วอัพโหลดขึ้น server แล้วทดสอบการทำงานผ่านมือถือโดยตรง หรือผ่าน Opera Mini Simulator ตามลิ้งค์ข้างล่าง
http://www.opera.com/mobile/demo/
http://demo.opera-mini.net/
PHP ฟังก์ชัน ที่ 1
<?php
function isMobileCheck(){
$isMobile = false;
$op = strtolower($_SERVER['HTTP_X_OPERAMINI_PHONE']);
$ua = strtolower($_SERVER['HTTP_USER_AGENT']);
$ac = strtolower($_SERVER['HTTP_ACCEPT']);
$ip = $_SERVER['REMOTE_ADDR'];
$isMobile = strpos($ac, 'application/vnd.wap.xhtml+xml') !== false
|| $op != ''
|| strpos($ua, 'sony') !== false
|| strpos($ua, 'symbian') !== false
|| strpos($ua, 'nokia') !== false
|| strpos($ua, 'samsung') !== false
|| strpos($ua, 'mobile') !== false
|| strpos($ua, 'windows ce') !== false
|| strpos($ua, 'epoc') !== false
|| strpos($ua, 'opera mini') !== false
|| strpos($ua, 'nitro') !== false
|| strpos($ua, 'j2me') !== false
|| strpos($ua, 'midp-') !== false
|| strpos($ua, 'cldc-') !== false
|| strpos($ua, 'netfront') !== false
|| strpos($ua, 'mot') !== false
|| strpos($ua, 'up.browser') !== false
|| strpos($ua, 'up.link') !== false
|| strpos($ua, 'audiovox') !== false
|| strpos($ua, 'blackberry') !== false
|| strpos($ua, 'ericsson,') !== false
|| strpos($ua, 'panasonic') !== false
|| strpos($ua, 'philips') !== false
|| strpos($ua, 'sanyo') !== false
|| strpos($ua, 'sharp') !== false
|| strpos($ua, 'sie-') !== false
|| strpos($ua, 'portalmmm') !== false
|| strpos($ua, 'blazer') !== false
|| strpos($ua, 'avantgo') !== false
|| strpos($ua, 'danger') !== false
|| strpos($ua, 'palm') !== false
|| strpos($ua, 'series60') !== false
|| strpos($ua, 'palmsource') !== false
|| strpos($ua, 'pocketpc') !== false
|| strpos($ua, 'smartphone') !== false
|| strpos($ua, 'rover') !== false
|| strpos($ua, 'ipaq') !== false
|| strpos($ua, 'au-mic,') !== false
|| strpos($ua, 'alcatel') !== false
|| strpos($ua, 'ericy') !== false
|| strpos($ua, 'up.link') !== false
|| strpos($ua, 'vodafone/') !== false
|| strpos($ua, 'wap1.') !== false
|| strpos($ua, 'wap2.') !== false;
return $isMobile;
}
?>
การใช้งาน
<?php
if(isMobileCheck()){
echo "Browse from mobile phone";
}else{
echo "Browse from Other";
}
?>
PHP ฟังก์ชัน ที่ 2
<?php
function isMobileCheck2(){
$mobile_browser=false;
if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone)/i', strtolower($_SERVER['HTTP_USER_AGENT']))) {
$mobile_browser=true;
}
if((strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml')>0) or ((isset($_SERVER['HTTP_X_WAP_PROFILE']) or isset($_SERVER['HTTP_PROFILE'])))) {
$mobile_browser=true;
}
$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
$mobile_agents = array(
'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
'wapr','webc','winw','winw','xda','xda-');
if(in_array($mobile_ua,$mobile_agents)){
$mobile_browser=true;
}
if(strpos(strtolower($_SERVER['ALL_HTTP']),'OperaMini')>0){
$mobile_browser=true;
}
if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']),'windows')>0){
$mobile_browser=true;
}
return $mobile_browser;
}
?>
การใช้งาน
<?php
if(isMobileCheck2()){
echo "Browse from mobile phone";
}else{
echo "Browse from Other";
}
?>
บทความคนเข้าอ่านวันนี้
23 Jan 12 แนวทางการประยุกต์ การซ่อน แสดงเนื้อหาสำหรับล็อกอิน อย่างง่าย ด้วย jQuery อ่าน 279 03 Aug 11 ใช้งาน google chart ตัวใหม่สร้าง poll อย่างง่าย อ่าน 1086 14 Feb 09 คำนวณหาอายุ จากวันเกิด ด้วย php อ่าน 4476 25 Sep 08 การทำปุ่ม Print แบบรูปภาพ อ่าน 3993 25 Sep 08 ตัวอย่างการใช้งานฟังก์ชันของ jQuery ในการเรียกใช้ Class ใน CSS อ่าน 3978 23 Nov 09 ทำการ cache หน้าเว็บไซต์ด้วย php class อย่างง่าย อ่าน 2076 08 Dec 09 แปลง jQuery object เป็น DOM object อ่าน 2467 21 Aug 09 ตรึงหัวข้อ header ในตาราง table ด้วย css รองรับ Firefox และ IE อ่าน 4804 18 Mar 09 เพิ่มลดขนาดตัวอักษรในหน้าเว็บแบบง่ายด้วย jQuery อ่าน 3108 08 Jun 09 วิธีการสร้าง preloading images โหลดรูปภาพ ด้วย javascript อย่างง่าย อ่าน 6348 03 Feb 10 ทบทวน javascript ฟังก์ชั่น ให้กรอกเฉพาะภาษาอังกฤษเท่านั้น อ่าน 2233 15 Oct 08 การสร้างข้อความแจ้งเตือนด้วย CSS อ่าน 3754 13 Oct 11 แนะนำการใช้งาน การเชื่อมต่อ facebook ด้วย php sdk v.3.1.1 อ่าน 673 02 May 10 ใช้งาน ajax ใน jQuery ดึงข้อมูลจากฐานข้อมูลมาแสดง ใน tooltip อ่าน 5921 26 Feb 09 การกำหนดให้ input text เลื่อนโฟกัส focus เองอัตโนมัติ ด้วย jQuery อ่าน 5102 22 Nov 08 ซ่อนและแสดงเนื้อหาแบบหีบเพลง (accordion) ด้วย jquery อย่างง่าย อ่าน 4639 09 Apr 10 สร้าง countdown นับเวลา ถอยหลัง ด้วย javascript อ่าน 5031 12 Nov 09 รู้จักกับ Ajax Events ใน jQuery อ่าน 4216 02 Apr 10 สร้าง layout 3 คอลัมน์ column ให้ สูงเท่ากัน ด้วย เทคนิค css อ่าน 4587 18 Aug 09 สร้าง ฟังก์ชั่น บันทึกหน้าเพจไว้ใน Favorites และ Bookmarks ด้วย javascript อ่าน 1660
