总结一下,做个笔记。判断访问浏览器是电脑还是手机的判断方法。 一个是服务器执行语言,一个是浏览器运行语言

PHP

方法一

/**

*

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

}

方法二

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;

}

?>

JavaScript

if (navigator['userAgent']['match'](/(iPhone|iPod|Android|ios|Nokia|Black Berry|MIDP|Phone)/i))

{

//是手机浏览器

}

else{

//是电脑浏览器

}

php+检测是否是手机浏览器,通过PHP、JavaScript、判断是否为手机浏览器相关推荐

  1. JavaScript判断是否是手机mobile登录

    在页面代码中加入以下js,即可利用JavaScript判断是否是手机mobile登录! <script type="text/javascript" src="${ ...

  2. JavaScript判断用户使用的浏览器

    JavaScript判断用户使用的浏览器 填坑之判断用户使用设备问题,上篇请看这里如何使用JavaScript来判断用户设备类型. 在这里,我们用到的还是 JavaScript 中的 navigato ...

  3. php怎么判断是否手机网站,php,js判断网站是不是手机访问

    Warning: strncmp() has been disabled for security reasons in /www/web/default/blog/public_html/wp-in ...

  4. php 判断浏览器是ie,js判断是否是ie浏览器

    怎么去看浏览器的内核等信息 ---- js的全局对象window子属性navigator.userAgent,这个属性是包含了浏览器信息的相关信息,包括我们需要的浏览器内核 navigator.use ...

  5. 如何判断微信浏览器php代码,PHP与Javascript判断微信内置浏览器代码

    在进行微信公众账号开发的时候,我们经常需要判断是否为微信内置浏览器.本文我们将介绍通过 User Agent 来判断是否为微信内置浏览器. 微信内置浏览器的 User Agent iPhone 上微信 ...

  6. php判断手机 跳转代码,php判断客户端是手机设备然后跳转到手机站

    // 如果是手机设置,跳转到手机页面 if (isMobile ()) { Header ( "Location: mobile.php" ); exit (); } /** * ...

  7. html判断是否在微信里打开,JavaScript判断浏览器内核,微信打开自动提示在浏览器打开...

    微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器.网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下.我们今天只讨论通过 JavaScript 判断是否在微信浏 ...

  8. JavaScript判断浏览器内核,微信打开自动提示在浏览器打开

    微信会屏蔽 URL 自定义的 scheme ,导致无法跳转手机中的浏览器.网上有一些工具类网站可以实现直接跳转浏览器,之后有机会我会整理一下.我们今天只讨论通过 JavaScript 判断是否在微信浏 ...

  9. 判断是否为IE浏览器(方法一)

    javascript 判断是否为IE浏览器的方法? 测试OK. 实例demo: <html doctype!> <html><head><title>& ...

  10. html浏览器在哪里,javascript在哪儿启用?

    如果您的浏览器不支持JavaScript功能或该功能被禁止,访问许多网站(包括本站)的时候有些功能就无法使用.我们建议您开启JavaScript功能以达到最佳的浏览效果,以下是可能的原因及开启方法: ...

最新文章

  1. Linux内存管理【转】
  2. java过滤html标签获取纯文本信息
  3. 论文浅尝 | 一日看尽长安花--NLP可解释研究梳理
  4. python求图形面积_求高效的,计算两多边形重叠面积的算法,python实现
  5. Java高级语法笔记-文件读写
  6. NUC980开发板Linux系统EC20模块 移植 串口 PPP拨号
  7. 传播路径图调查2013年初
  8. k2pbreed刷高恪教程_从breed一键刷机工作
  9. 米思齐 Mixly 解决函数模块无法上下连接。
  10. 国际标准智商测试题答案
  11. Oracle AutoVue 运用场景及操作说明
  12. java小时钟实验报告_JAVA实验报告(运用JavaFx实现时钟动画).doc
  13. ROBOMASTER比赛作品集_邹俊添
  14. 502 问题怎么排查?
  15. Web实验六 JavaScript实验
  16. 基于多源大数据的武汉市区域空间格局研究
  17. golang学习笔记
  18. 深入理解Android之AOP
  19. R手册(Common)--R语言入门
  20. 背景透明css样式,CSS 背景(background)+背景透明(CSS3)

热门文章

  1. 大数据处理流程的主要环节
  2. 浙大PAT乙级练习1001
  3. FlashBuilder 4.6破解方法
  4. 12.SpringBoot集成微信公众号开发
  5. iwconfig 安装_嵌入式wifi iwconfig编译
  6. JAVA 进制转换工具
  7. ArcPy以表格显示分区统计(ZonalStatisticsAsTable)
  8. 关于一元线性回归、自相关性与Stata实现
  9. 树莓派修改root密码
  10. h5游戏引擎有哪些?h5制作模板游戏的教程和流程是什么?