方法一,摘自discuz
復制代碼
/**
*
* 根據php的$_SERVER['HTTP_USER_AGENT'] 中各種瀏覽器訪問時所包含各個瀏覽器特定的字符串來判斷是屬于PC還是移動端
* @author discuz3x
* @lastmodify 2014-04-09
* @return BOOL
*/
function checkmobile() {
global $_G;
$mobile = array();
//各個觸控瀏覽器中$_SERVER['HTTP_USER_AGENT']所包含的字符串數組
static $touchbrowser_list =array('iphone', 'android', 'phone', 'mobile', 'wap', 'netfront', 'java', 'opera mobi', 'opera mini',
'ucweb', 'windows ce', 'symbian', 'series', 'webos', 'sony', 'blackberry', 'dopod', 'nokia', 'samsung',
'palmsource', 'xda', 'pieplus', 'meizu', 'midp', 'cldc', 'motorola', 'foma', 'docomo', 'up.browser',
'up.link', 'blazer', 'helio', 'hosin', 'huawei', 'novarra', 'coolpad', 'webos', 'techfaith', 'palmsource',
'alcatel', 'amoi', 'ktouch', 'nexian', 'ericsson', 'philips', 'sagem', 'wellcom', 'bunjalloo', 'maui', 'smartphone',
'iemobile', 'spice', 'bird', 'zte-', 'longcos', 'pantech', 'gionee', 'portalmmm', 'jig browser', 'hiptop',
'benq', 'haier', '^lct', '320x320', '240x320', '176x220');
//window手機瀏覽器數組【猜的】
static $mobilebrowser_list =array('windows phone');
//wap瀏覽器中$_SERVER['HTTP_USER_AGENT']所包含的字符串數組
static $wmlbrowser_list = array('cect', 'compal', 'ctl', 'lg', 'nec', 'tcl', 'alcatel', 'ericsson', 'bird', 'daxian', 'dbtel', 'eastcom',
'pantech', 'dopod', 'philips', 'haier', 'konka', 'kejian', 'lenovo', 'benq', 'mot', 'soutec', 'nokia', 'sagem', 'sgh',
'sed', 'capitel', 'panasonic', 'sonyericsson', 'sharp', 'amoi', 'panda', 'zte');
$pad_list = array('pad', 'gt-p1000');
$useragent = strtolower($_SERVER['HTTP_USER_AGENT']);
if(dstrpos($useragent, $pad_list)) {
return false;
}
if(($v = dstrpos($useragent, $mobilebrowser_list, true))){
$_G['mobile'] = $v;
return '1';
}
if(($v = dstrpos($useragent, $touchbrowser_list, true))){
$_G['mobile'] = $v;
return '2';
}
if(($v = dstrpos($useragent, $wmlbrowser_list))) {
$_G['mobile'] = $v;
return '3'; //wml版
}
$brower = array('mozilla', 'chrome', 'safari', 'opera', 'm3gate', 'winwap', 'openwave', 'myop');
if(dstrpos($useragent, $brower)) return false;
$_G['mobile'] = 'unknown';
//對于未知類型的瀏覽器,通過$_GET['mobile']參數來決定是否是手機瀏覽器
if(isset($_G['mobiletpl'][$_GET['mobile']])) {
return true;
} else {
return false;
}
}
/**
* 判斷$arr中元素字符串是否有出現在$string中
* @param $string $_SERVER['HTTP_USER_AGENT']
* @param $arr 各中瀏覽器$_SERVER['HTTP_USER_AGENT']中必定會包含的字符串
* @param $returnvalue 返回瀏覽器名稱還是返回布爾值,true為返回瀏覽器名稱,false為返回布爾值【默認】
* @author discuz3x
* @lastmodify 2014-04-09
*/
function dstrpos($string, $arr, $returnvalue = false) {
if(empty($string)) return false;
foreach((array)$arr as $v) {
if(strpos($string, $v) !== false) {
$return = $returnvalue ? $v : true;
return $return;
}
}
return false;
}
新聞熱點
疑難解答