สร้างฟังก์ชัน ตรวจสอบ การเข้าเว็บไซต์ ผ่านมือถือ ด้วย 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"; 
}   
 ?>

 








บทความในหมวดที่่น่าสนใจ อื่นๆ PHP Learning

31 Aug 10 เทคนิค php ใช้ fgets และ javascript วนลูป loop อ่านไฟล์ ขนาดใหญ่ อ่าน 1583 14 Dec 10 แนะนำ php ip 2 country สำหรับเช็ค ip ว่ามาจากประเทศอะไร อ่าน 1564 23 Jun 11 การสร้าง active เมนู อย่างง่าย ด้วย css และ php อ่าน 1551 25 Oct 08 สร้างฟังก์ชันการหา whois เบื้องต้นด้วย php อย่างง่าย อ่าน 1417 22 Oct 10 สร้าง php ฟังก์ชัน ค้นหาค่าในตัวแปร array อย่างง่าย อ่าน 1403 04 Dec 09 จัดการ Directory สร้าง ลบ เปลี่ยนชื่อ กำหนด permission ผ่าน FTP function ด้วย PHP อ่าน 1387 10 Feb 10 ประยุกต์ สร้าง FTP Function สำหรับการจัดการไฟล์ผ่าน FTP Protocal อ่าน 1375 25 Sep 08 เพิ่มข้อความหน้าหรือหลังตัวเลขหรือข้อความด้วยฟังก์ชัน str_pad อ่าน 1346 03 Feb 11 การใช้งาน character classes ใน Regular Expressions ของ PHP อ่าน 1246 26 Mar 10 ความแตกต่าง ระหว่าง ฟังก์ชัน strstr กับ strrchr และ การประยุกต์ ใช้งาน อ่าน 1230 28 May 10 แสดง การแจ้งเตือน ให้เปิด หรือ บันทึกไฟล์ที่ดาวน์โหลด ด้วย php อ่าน 1201 18 Mar 11 ทบทวน htaccess สำหรับ ให้ url เว็บมี www ด้านหน้าเสมอ อ่าน 1188 30 Oct 09 ฟังก์ชัน PHP แปลงตัวเลขอาราบิก เป็น ตัวเลขไทย อย่างง่าย อ่าน 1155 02 Sep 10 สร้าง ฟังก์ชัน ค้นหาโดเมน check domain ว่าง อย่างง่าย ด้วย php อ่าน 1150 02 Mar 10 ประยุกต์ แปลเนื้อหา ในเว็บไซต์ด้วย google translater api สำหรับ php อ่าน 1143

บทความคนเข้าอ่านวันนี้

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
จำนวนผู้เยี่ยมชม 777902
คน 2012 © Copyright ninenik.com. All rights reserved.