PHP判断是手机端还是PC端 PHP判断是否是微信浏览器


Posted in PHP onMarch 15, 2017

本文实例为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下

1、判断是否是手机端

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;
  } 
  // 脑残法,判断手机发送的客户端标志,兼容性有待提高。其中'MicroMessenger'是电脑微信
  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','MicroMessenger'); 
    // 从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;
}

2、判断是否是微信内置浏览器

function isWeixin() { 
  if (strpos($_SERVER['HTTP_USER_AGENT'], 'MicroMessenger') !== false) { 
    return true; 
  } else {
    return false; 
  }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
PHP中几种常见的超时处理全面总结
Sep 11 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
PHP的反射类ReflectionClass、ReflectionMethod使用实例
Aug 05 PHP
php画图实例
Nov 05 PHP
php把数组值转换成键的方法
Jul 13 PHP
php+ajax 实现输入读取数据库显示匹配信息
Oct 08 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
Mar 01 PHP
Yii2表单事件之Ajax提交实现方法
May 04 PHP
PHP 的Opcache加速的使用方法
Dec 29 PHP
PHP实现小程序批量通知推送
Nov 27 PHP
Laravel框架实现调用百度翻译API功能示例
May 30 PHP
关于Curl在Swoole协程中的解决方案详析
Sep 12 PHP
thinkPHP简单导入和使用阿里云OSSsdk的方法
Mar 15 #PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
Mar 15 #PHP
thinkPHP简单调用函数与类库的方法
Mar 15 #PHP
Yii2 批量插入、更新数据实例
Mar 15 #PHP
Yii实现复选框批量操作实例代码
Mar 15 #PHP
thinkPHP实现签到功能的方法
Mar 15 #PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 #PHP
You might like
php的mail函数发送UTF-8编码中文邮件时标题乱码的解决办法
2015/10/20 PHP
mysql_escape_string()函数用法分析
2016/04/25 PHP
PHP请求远程地址设置超时时间的解决方法
2016/10/29 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
详谈 Jquery Ajax异步处理Json数据.
2011/09/09 Javascript
js 金额文本框实现代码
2012/02/14 Javascript
js动态生成指定行数的表格
2013/07/11 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
JS实现超过长度限制后自动跳转下一款文本框的方法
2015/02/23 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
vue.js实例todoList项目
2017/07/07 Javascript
jQuery事件对象的属性和方法详解
2017/09/09 jQuery
基于vue.js无缝滚动效果
2018/01/25 Javascript
elementui的默认样式修改方法
2018/02/23 Javascript
Bootstrap Paginator+PageHelper实现分页效果
2018/12/29 Javascript
OpenLayers3实现地图显示功能
2020/09/25 Javascript
[54:25]Ti4 循环赛第三日LGD vs MOUZ
2014/07/12 DOTA
[55:25]VGJ.T vs Optic Supermajor小组赛D组 BO3 第三场 6.3
2018/06/04 DOTA
[50:27]OG vs LGD 2018国际邀请赛淘汰赛BO3 第一场 8.26
2018/08/30 DOTA
python比较2个xml内容的方法
2015/05/11 Python
python多任务及返回值的处理方法
2019/01/22 Python
Python udp网络程序实现发送、接收数据功能示例
2019/12/09 Python
Python+OpenCV实现旋转文本校正方式
2020/01/09 Python
关于ResNeXt网络的pytorch实现
2020/01/14 Python
python用700行代码实现http客户端
2021/01/14 Python
使用CSS3制作饼状旋转载入效果的实例
2015/06/23 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
2020/11/25 HTML / CSS
HTML5中图片之间的缝隙完美解决方法
2017/07/07 HTML / CSS
简述索引存取方法的作用和建立索引的原则
2013/03/26 面试题
优秀应届本科生求职信
2014/07/19 职场文书
党支部考察意见范文
2015/06/02 职场文书
2015年党务工作者个人工作总结
2015/10/22 职场文书
感谢信
2019/04/11 职场文书
Python基础之hashlib模块详解
2021/05/06 Python
详解nginx进程锁的实现
2021/06/14 Servers
python的html标准库
2022/04/29 Python