สำหรับคนที่ต้องการกำหนดเงื่อนไข ในการเข้าชมเว็บไซต์ ตัวอย่าง กรณีผู้ใช้งานเข้าชมเว็บไซต์ผ่านมือถือ สามารถใช้ฟังก์ชันนี้ ในการกำหนดตัวเลือกว่าต้องการเข้าเว็บเวอร์ชั่นปกติ หรือเวอร์ชั่นสำหรับมือถือ หรือใช้กำหนดให้ลิ้งค์เว็บไซต์เวอร์ชั่นมือถืออัตโนมัติ เป็นต้น
แนะนำ 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";
}
?>