第一種辦法:
/**
* 檢查是否是以手機瀏覽器進入(IN_MOBILE)
*/
function isMobile() {
$mobile = array();
static $mobilebrowser_list ='Mobile|iPhone|Android|WAP|NetFront|JAVA|OperasMini|UCWEB|WindowssCE|Symbian|Series|webOS|SonyEricsson|Sony|BlackBerry|Cellphone|dopod|Nokia|samsung|PalmSource|Xphone|Xda|Smartphone|PIEPlus|MEIZU|MIDP|CLDC';
//note 獲取手機瀏覽器
if(preg_match("/$mobilebrowser_list/i", $_SERVER['HTTP_USER_AGENT'], $mobile)) {
return true;
}else{
if(preg_match('/(mozilla|chrome|safari|opera|m3gate|winwap|openwave)/i', $_SERVER['HTTP_USER_AGENT'])) {
return false;
}else{
if($_GET['mobile'] === 'yes') {
return true;
}else{
return false;
}
}
}
}
第二種方法:使用 PHP 內置函數 get_browser() 判斷是否是移動瀏覽器
get_browser — 獲取瀏覽器具有的功能。該函數通過查找 browscap.ini 文件中的瀏覽器信息,嘗試檢測用戶的瀏覽器所具有的功能。
由於許可證的問題,PHP 未提供瀏覽器功能文件,可以從 Browscap 得到瀏覽器功能文件,可以在 http://browscap.org/ 下載 php_browscap.ini 文件。
下載之後,需要在 php.ini 中設置(Win 下):
browscap=D:\wamp\bin\php\php5.5.12\browscap.ini
或者(Linux下)
browscap=/usr/local/php/lib/php/browscap.ini
然後重啓服務,此時可以在 php 文件中打印出 get_browser()
var_dump(get_browser());
輸出結果爲:
object(stdClass)#1 (15) {
["browser_name_regex"]=>
string(101) "~^mozilla/5\.0 \(.*windows nt 10\.0.*\) applewebkit/.* \(khtml, like gecko\) chrome/49\..*safari/.*$~"
["browser_name_pattern"]=>
string(85) "Mozilla/5.0 (*Windows NT 10.0*) AppleWebKit/* (KHTML, like Gecko) Chrome/49.*Safari/*"
["parent"]=>
string(11) "Chrome 49.0"
["platform"]=>
string(5) "Win10"
["comment"]=>
string(11) "Chrome 49.0"
["browser"]=>
string(6) "Chrome"
["browser_maker"]=>
string(10) "Google Inc"
["version"]=>
string(4) "49.0"
["majorver"]=>
string(2) "49"
["device_type"]=>
string(7) "Desktop"
["device_pointing_method"]=>
string(5) "mouse"
["minorver"]=>
string(1) "0"
["ismobiledevice"]=>
string(0) ""
["istablet"]=>
string(0) ""
["crawler"]=>
string(0) ""
}
調用結果:
<?php
$ismobiledevice = get_browser()->ismobiledevice;
if($ismobiledevice) {
//移動端設備
} else {
//PC端
}