访问PC或移动设备手机平板电脑判断

方法一:

/**
*
* 根据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’, ‘320×320’, ‘240×320’, ‘176×220’);
//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;
}
}

方法二:

/**
* 是否移动端访问访问
*
* @return bool
*/
function isMobile()
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset ($_SERVER[‘HTTP_X_WAP_PROFILE’]))
{
return true;
}
// 如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if (isset ($_SERVER[‘HTTP_VIA’]))
{
// 找不到为flase,否则为true
return stristr($_SERVER[‘HTTP_VIA’], “wap”) ? true : false;
}
// 脑残法,判断手机发送的客户端标志,兼容性有待提高
if (isset ($_SERVER[‘HTTP_USER_AGENT’]))
{
$clientkeywords = array (‘nokia’,
‘sony’,
‘ericsson’,
‘mot’,
‘samsung’,
‘htc’,
‘sgh’,
‘lg’,
‘sharp’,
‘sie-‘,
‘philips’,
‘panasonic’,
‘alcatel’,
‘lenovo’,
‘iphone’,
‘ipod’,
‘blackberry’,
‘meizu’,
‘android’,
‘netfront’,
‘symbian’,
‘ucweb’,
‘windowsce’,
‘palm’,
‘operamini’,
‘operamobi’,
‘openwave’,
‘nexusone’,
‘cldc’,
‘midp’,
‘wap’,
‘mobile’
);
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if (preg_match(“/(” . implode(‘|’, $clientkeywords) . “)/i”, strtolower($_SERVER[‘HTTP_USER_AGENT’])))
{
return true;
}
}
// 协议法,因为有可能不准确,放到最后判断
if (isset ($_SERVER[‘HTTP_ACCEPT’]))
{
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if ((strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) !== false) && (strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’) === false || (strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) < strpos($_SERVER[‘HTTP_ACCEPT’], ‘text/html’))))
{
return true;
}
}
return false;
}

郑重声明:

1 本资源来源于互联网,资源的版权归资源原作者所持有,受《中华人民共和国著作权法》等相关法律保护。

2 由于无法和原作者取得联系,所以上传的部分资源无法先通过原作者的同意就分享给大家了,如本资源侵犯了您(原作者)的权益,请联系我们(微信号 xiaohaimei1989),我们会立马删除您的资源,并向您表达诚挚的歉意!

3 本站是一个公益型网站,分享资源的目的在于传播知识,分享知识,收取一点点打赏的辛苦费是用于网站的日常运营开支,并非用于商业用途。

4 本站资源只提供学习和参考研究使用,使用过后请在第一时间内删除。本站不承担资源被单位或个人商用带来的法律责任。

发表评论