php判断是pc还是手机,php如何判断是手机还是电脑

65e43ae375fa1ea5c5d5d12a5f5fd2e9.png

php如何判断是手机还是电脑

有时我们需要知道用户当前的设备,以便进行业务处理,例如pc就跳转pc站,手机就跳转手机站,下面介绍一种判断的方法。首先php获取$_SERVER['HTTP_USER_AGENT']的值;

然后比对各个浏览器特定的字符串;

最后通过比对结果就能够判断是手机还是电脑了。

代码如下:/**

*

* 根据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;

}

更多PHP相关知识,请访问PHP中文网!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值