สำหรับคนที่ต้องการกำหนดเงื่อนไข ในการเข้าชมเว็บไซต์ ตัวอย่าง กรณีผู้ใช้งานเข้าชมเว็บไซต์ผ่านมือถือ สามารถใช้ฟังก์ชันนี้ ในการกำหนดตัวเลือกว่าต้องการเข้าเว็บเวอร์ชั่นปกติ หรือเวอร์ชั่นสำหรับมือถือ หรือใช้กำหนดให้ลิ้งค์เว็บไซต์เวอร์ชั่นมือถืออัตโนมัติ เป็นต้น
แนะนำ 2 ฟังก์ชัน isMobileCheck() และ isMobileCheck2() โดยการทำงานของฟังก์ชันแรก จะเร็วกว่าฟังก์ชันที่สอง แต่ไม่ต่างกันมาก สามารถสร้างไฟล์ทดสอบ แล้วอัพโหลดขึ้น server แล้วทดสอบการทำงานผ่านมือถือโดยตรง หรือผ่าน Opera Mini Simulator ตามลิ้งค์ข้างล่าง
http://www.opera.com/mobile/demo/
http://demo.opera-mini.net/
PHP ฟังก์ชัน ที่ 1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <?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 ; } ?> |
การใช้งาน
1 2 3 4 5 6 7 | <?php if (isMobileCheck()){ echo "Browse from mobile phone" ; } else { echo "Browse from Other" ; } ?> |
PHP ฟังก์ชัน ที่ 2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | <?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 ; } ?> |
การใช้งาน
1 2 3 4 5 6 7 | <?php if (isMobileCheck2()){ echo "Browse from mobile phone" ; } else { echo "Browse from Other" ; } ?> |