สร้างฟังก์ชัน ตรวจสอบ การเข้าเว็บไซต์ ผ่านมือถือ ด้วย php

Bookmark and Share

สำหรับคนที่ต้องการกำหนดเงื่อนไข ในการเข้าชมเว็บไซต์ ตัวอย่าง กรณีผู้ใช้งานเข้าชมเว็บไซต์ผ่านมือถือ สามารถใช้ฟังก์ชันนี้ ในการกำหนดตัวเลือกว่าต้องการเข้าเว็บเวอร์ชั่นปกติ หรือเวอร์ชั่นสำหรับมือถือ หรือใช้กำหนดให้ลิ้งค์เว็บไซต์เวอร์ชั่นมือถืออัตโนมัติ เป็นต้น

แนะนำ 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

24 Aug 10 ประยุกต์ ใช้รายการ จากฐานข้อมูล สร้างปฏิทินกิจกรรม ด้วย fullcalendar และ jQuery อ่าน 400 28 May 10 แสดง การแจ้งเตือน ให้เปิด หรือ บันทึกไฟล์ที่ดาวน์โหลด ด้วย php อ่าน 351 26 Mar 10 ความแตกต่าง ระหว่าง ฟังก์ชัน strstr กับ strrchr และ การประยุกต์ ใช้งาน อ่าน 349 23 Aug 10 Integrate ใช้ Filemanager ของ FCKeditor กับ CKEditor แทน CKFinder อ่าน 345 03 Sep 10 จัดรูปแบบ url ลิ้งค์ link ด้วย เทคนิค php ได้อย่างง่าย อ่าน 224 31 Aug 10 เทคนิค php ใช้ fgets และ javascript วนลูป loop อ่านไฟล์ ขนาดใหญ่ มีการอัพเดท อ่าน 209 06 Sep 10 ประยุกต์ การ invite friends ใน facebook มาใช้งาน อ่าน 141 07 Sep 10 ใช้ ckeditor กับ filemanager ด้วย php รองรับ ฟังก์ชัน javascript มีการอัพเดท อ่าน 125 02 Sep 10 สร้าง ฟังก์ชัน ค้นหาโดเมน check domain ว่าง อย่างง่าย ด้วย php อ่าน 120
จำนวนผู้เยี่ยมชม 189203 คน 2010 © Copyright ninenik.com. All rights reserved.