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

เขียนเมื่อ 13 ปีก่อน โดย Ninenik Narkdee
มือถือ php

คำสั่ง การ กำหนด รูปแบบ ตัวอย่าง เทคนิค ลูกเล่น การประยุกต์ การใช้งาน เกี่ยวกับ มือถือ php

ดูแล้ว 13,023 ครั้ง


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

แนะนำ 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"; 
}   
 ?>

 



กด Like หรือ Share เป็นกำลังใจ ให้มีบทความใหม่ๆ เรื่อยๆ น่ะครับ











URL สำหรับอ้างอิง





คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )







เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ