PHP判断访客是否手机端(移动端浏览器)访问的方法总结【4种方法】


Posted in PHP onMarch 27, 2019

本文实例总结了PHP判断访客是否手机端(移动端浏览器)访问的方法。分享给大家供大家参考,具体如下:

在平常工作开发中,我们通常需要开发出PC端和移动端两个不同的系统,从而根据访问端的不同进入到不同的操作界面中。这就需要我们首先要对访问的客户端进行判断是PC端还是移动端。

本博文讨论使用PHP判断访问端是否是移动端(或是移动端浏览器)从而确定是移动端访问的4种方法:

1、根据 HTTP_X_WAP_PROFILE是否存在进行判断,存在则是移动端(部分服务商会屏蔽该信息)

/**
* 是否是移动端访问
* @desc 判断是否是移动端进行访问
* @方法一:判断是否有HTTP_X_WAP_PROFILE,有则一定是移动设备。
* @return bool
* $Author: Zhihua_W
*/
function isMobile1()
{
   if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) {
     return true;
   } else {
     return false;
   }
}

2、根据HTTP_VIA信息进行判断,如果VIA信息含有wap则是移动设备(部分服务商会屏蔽该信息)

/**
 * 是否是移动端访问
 * @desc 判断是否是移动端进行访问
 * @方法二:判断HTTP_VIA信息是否含有wap信息,有则一定是移动设备。
 * @return bool
 * $Author: Zhihua_W
 */
 function isMobile2 ()
 {
   if (isset ($_SERVER['HTTP_VIA'])) {
     return true;
   } else {
     return false;
   }
 }

3、根据手机发送的客户端标志进行判断,此方法比较笨,并且兼容性有待提高

/**
* 是否是移动端访问
* @desc 判断是否是移动端进行访问
* @方法三:判断是否有HTTP_USER_AGENT信息是否是手机发送的客户端标志,有则一定是移动设备。
* @return bool
* $Author: Zhihua_W
*/
function isMobile3 ()
{
   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;
    } else {
      return false;
    }
  } else {
    return false;
  }
}

4、根据协议进行判断,此方法有可能不正确或是判断不出来

/**
* 是否是移动端访问
* @desc 判断是否是移动端进行访问
* @方法四:判断HTTP_ACCEPT信息
* @return bool
* $Author: Zhihua_W
*/
function isMobile4()
{
  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;
    } else {
    return false;
    }
  } else {
    return false;
  }
}

以上四种方法都存在部分缺陷和兼容性不好等问题,所以博友在用的时候可以将四种方法结合成一个方法进行判断。

PHP 相关文章推荐
利用static实现表格的颜色隔行显示的代码
Sep 02 PHP
php echo 输出字符串函数详解
May 13 PHP
无法在发生错误时创建会话,请检查 PHP 或网站服务器日志,并正确配置 PHP 安装(win+linux)
May 05 PHP
Php中文件下载功能实现超详细流程分析
Jun 13 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
PHP--用万网的接口实现域名查询功能
Dec 13 PHP
如何用C语言编写PHP扩展的详解
Jun 13 PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 PHP
用 Composer构建自己的 PHP 框架之设计 MVC
Oct 30 PHP
Zend Framework实现Zend_View集成Smarty模板系统的方法
Mar 05 PHP
thinkPHP简单实现多个子查询语句的方法
Dec 05 PHP
详解php反序列化
Jun 10 PHP
PHP实现数据四舍五入的方法小结【4种方法】
Mar 27 #PHP
PHP判断是否微信访问的方法示例
Mar 27 #PHP
PHP中localeconv()函数的用法
Mar 26 #PHP
PHP实现的支付宝支付功能示例
Mar 26 #PHP
PHP小程序支付功能完整版【基于thinkPHP】
Mar 26 #PHP
PHP实现微信退款的方法示例
Mar 26 #PHP
PHP设计模式之单例模式定义与用法分析
Mar 26 #PHP
You might like
zend framework框架中url大小写问题解决方法
2014/08/19 PHP
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
2011/10/16 Javascript
JS实现淘宝幻灯片效果的实现方法
2013/03/22 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
微信内置浏览器私有接口WeixinJSBridge介绍
2015/05/25 Javascript
JS+CSS实现另类带提示效果的竖向导航菜单
2015/10/15 Javascript
js滚动条平滑移动示例代码
2016/03/29 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
详解从Vue.js源码看异步更新DOM策略及nextTick
2017/10/11 Javascript
如何实现一个webpack模块解析器
2018/10/24 Javascript
基于vue如何发布一个npm包的方法步骤
2019/05/15 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
[43:14]Liquid vs Optic 2018国际邀请赛淘汰赛BO3 第二场 8.21
2018/08/22 DOTA
Pyramid添加Middleware的方法实例
2013/11/27 Python
python 把数据 json格式输出的实例代码
2016/10/31 Python
Python实现爬取需要登录的网站完整示例
2017/08/19 Python
分享Pycharm中一些不为人知的技巧
2018/04/03 Python
Ubuntu下使用python读取doc和docx文档的内容方法
2018/05/08 Python
pip install urllib2不能安装的解决方法
2018/06/12 Python
可以随进度显示不同颜色的css3进度条分享
2014/04/11 HTML / CSS
boostrap modal 闪现问题的解决方法
2020/09/01 HTML / CSS
美国最便宜的旅游网站:CheapTickets
2017/07/09 全球购物
Larsson & Jennings官网:现代瑞士钟表匠
2018/03/20 全球购物
动物科学专业毕业生的自我评价
2013/11/29 职场文书
超市重阳节活动方案
2014/02/10 职场文书
广告设计应届生求职信
2014/03/01 职场文书
三方合作协议书范本
2014/04/18 职场文书
大学同学会活动方案
2014/08/20 职场文书
交通工程专业推荐信
2014/09/06 职场文书
校园广播稿100字
2014/10/06 职场文书
2014年自愿离婚协议书
2014/10/10 职场文书
民事赔偿协议书
2014/11/02 职场文书
意向协议书
2015/01/27 职场文书
初中教师个人工作总结
2015/02/10 职场文书
导游词之沈阳清昭陵
2019/12/28 职场文书