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 相关文章推荐
树型结构列出指定目录里所有文件的PHP类
Oct 09 PHP
mysql 全文搜索 技巧
Apr 27 PHP
Windows PHP5和Apache的安装与配置
Jun 08 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
基于PHP的简单采集数据入库程序【续篇】
Jul 30 PHP
php常用字符串处理函数实例分析
Nov 22 PHP
Android App中DrawerLayout抽屉效果的菜单编写实例
Mar 21 PHP
PHP的PDO常用类库实例分析
Apr 07 PHP
PHP+JQUERY操作JSON实例
Mar 23 PHP
利用PHP获取访客IP、地区位置、浏览器及来源页面等信息
Jun 27 PHP
PHP微信支付结果通知与回调策略分析
Jan 10 PHP
Laravel框架处理用户的请求操作详解
Dec 20 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
PHP zip扩展Linux下安装过程分享
2014/05/05 PHP
使用SMB共享来绕过php远程文件包含的限制执行RFI的利用
2019/05/31 PHP
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
基于JQuery和CSS3实现仿Apple TV海报背景视觉差特效源码分享
2015/09/21 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
Javascript json object 与string 相互转换的简单实现
2016/09/27 Javascript
Javascript动画效果(4)
2016/10/11 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
JavaScript ES6中CLASS的使用详解
2016/11/22 Javascript
jQuery接受后台传递的List的实例详解
2017/08/02 jQuery
详解Node.js利用node-git-server快速搭建git服务器
2017/09/27 Javascript
JavaScript运行原理分析
2018/02/09 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
优雅地使用loading(推荐)
2019/04/20 Javascript
微信小程序实现元素渐入渐出动画效果封装方法
2019/05/18 Javascript
[01:22:42]2014 DOTA2华西杯精英邀请赛 5 24 DK VS LGD
2014/05/26 DOTA
Python运行的17个时新手常见错误小结
2012/08/07 Python
在Python中使用dict和set方法的教程
2015/04/27 Python
Python机器学习k-近邻算法(K Nearest Neighbor)实例详解
2018/06/25 Python
python ubplot使用方法解析
2020/01/10 Python
Python同时迭代多个序列的方法
2020/07/28 Python
python openpyxl模块的使用详解
2021/02/25 Python
英国女装网上商店:I Saw It First
2018/10/18 全球购物
电子商务毕业生求职信
2013/11/10 职场文书
任课老师推荐信范文
2013/11/24 职场文书
运动会通讯稿500字
2014/02/20 职场文书
创建省级文明单位实施方案
2014/02/27 职场文书
仓库管理计划书
2014/05/04 职场文书
一份没有按时交货失信于客户的检讨书
2014/09/19 职场文书
设立有限责任公司出资协议书
2014/11/01 职场文书
党支部2014年度工作总结
2014/12/04 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
中秋节主题班会
2015/08/14 职场文书
2016抗战胜利71周年红领巾广播稿
2015/12/18 职场文书
2016年优秀少先队辅导员事迹材料
2016/02/26 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书