在web应用开发过程中经常要判断当前客户端是不是手机浏览器访问,以便和PC环境区分。下面的函数可能会帮到你。

function is_mobile_request(){

$_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';

$mobile_browser = '0';

if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))

$mobile_browser++;

if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))

$mobile_browser++;

if(isset($_SERVER['HTTP_X_WAP_PROFILE']))

$mobile_browser++;

if(isset($_SERVER['HTTP_PROFILE']))

$mobile_browser++;

$mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));

$mobile_agents = array(

'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',

'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',

'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',

'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',

'newt','noki','oper','palm','pana','pant','phil','play','port','prox',

'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',

'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',

'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',

'wapr','webc','winw','winw','xda','xda-'

);

if(in_array($mobile_ua, $mobile_agents))

$mobile_browser++;

if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)

$mobile_browser++;

// Pre-final check to reset everything if the user is on Windows

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)

$mobile_browser=0;

// But WP7 is also Windows, with a slightly different characteristic

if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)

$mobile_browser++;

if($mobile_browser>0)

return true;

else

return false;

}

php判断手机浏览器,php判断是不是手机浏览器访问相关推荐

  1. java判断是否手机浏览器_User-Agent判断是什么浏览器

    Windows操作系统浏览器系列: IE浏览器系列: 特征表现:均以 "mozilla/" 开头,"msie x.0;" 中的x表示其版本: 判断方法:粗略判断 ...

  2. java判断浏览地址是手机还是pc,判断是手机还是PC浏览器的方法

    var browser = { versions:function(){ var u = navigator.userAgent, app = navigator.appVersion; return ...

  3. 浏览器及手机版本型号判断

    Navigator 对象:包含有关浏览器的信息,所有浏览器都支持该对象 对象属性参考:https://www.w3school.com.cn/jsref/dom_obj_navigator.asp 属 ...

  4. nginx 手机版页面判断_Nginx配置如何区分PC或手机访问不同域名

    新官网上线,但在手机上访问新官网的体验很差,要求在手机上访问新官网时访问旧官网,可以通过修改Nginx配置来实现自动跳转. 首先是新官网的Nginx配置文件加个跳转判断,通过user-agent判断来 ...

  5. iOS - iPhone手机刘海屏判断

    2022.04.11 更新,修改获取 iPhone 状态栏.导航栏.TabBar高度等部分内容. 前言 最近写毕业设计的时候,发现 iPhoneX 之后的刘海屏手机顶部状态栏高度和底部TabBar高度 ...

  6. 微信小程序---判断苹果11及以上型号手机

    微信小程序-判断苹果11及以上型号手机 在app,js全局中 onLaunch: function () {var t = this;wx.getSystemInfo({success: functi ...

  7. html手机偏左,判断方向盘跑偏有妙招 一部手机就搞定

    很多朋友有时候会觉得车子有点跑偏,但是好像不太能确定,今天和大家分享一下,如何 如何用手机判断车子有没有跑偏? 手机下载水平仪 我们的手机里都有一个叫 我们只需要去网上下载一个水平仪类型的APP就可以 ...

  8. android 判断手机是否是国内的手机的方法

    转载:android 判断手机是否是国内的手机的方法(getSimCountryIso和getSimOperator) http://blog.csdn.net/mingli198611/articl ...

  9. java 判断手机访问_java后台如何判断是移动端还是pc端的访问请求

    java后台如何判断是移动端还是pc端的访问请求 主要是根据  HttpServletRequest request  中的请求头所带的参数 user-agent来获取: String userAge ...

  10. 手机php用什么打开手机浏览器下载,php实现读取手机客户端浏览器的类

    /** * 类名: mobile * 描述: 手机信息类 * 其他: 偶然 编写 */ class mobile{ /** * 函数名称: getPhoneNumber * 函数功能: 取手机号 * ...

最新文章

  1. 视频会说话:神策智能运营,让你半小时搞定一次活动!
  2. 将自己写的经常复用的类封装成动态库的方法
  3. Java解释XML文件的小例子
  4. 利用JEXL实现动态表达式编译
  5. C++ 11 新特性(十一)final和override
  6. QT5_PYQT导入自己的图片
  7. [翻译] UIImageView-Letters
  8. 如何为***选择合适的动态密码双因素认证方案
  9. ES6模块的循环加载
  10. ARP挂马***--嗅探欺骗的最恐怖方式
  11. 十(7)rsync:介绍、常用选项、通过ssh同步、通过服务同步、linux系统日志、screen...
  12. 190422每日一句
  13. web元素定位之------日历控件的定位
  14. 总结:86版五笔输入法
  15. vue项目中微信分享安卓正常,ios报签名错误
  16. http://msdn.itellyou.cn/
  17. 公钥加密、数字签名、消息认证
  18. 乐符识别matlab,GitHub - Nuullll/music-synthesizer: Homework No.1 for summer course: MATLAB
  19. 倍福--授权文件拷贝
  20. 《华尔街》观后笔记8——明暗创新

热门文章

  1. 视频教程-Hive在大数据分析和大数据仓库中应用实战-大数据
  2. 解决hdfs dfs -mkdir input报错`mkdir`:No such file or directory
  3. Civil2019程序安装及注意事项
  4. 什么是 Power BI?
  5. 万科java_万科面试总结
  6. ubuntu记录pdf手写笔记: 数位板(硬件)+xournal(软件)
  7. 分布式系统面临的问题
  8. 机器人学习笔记(3) 正运动学和逆运动学
  9. PTES执行内容思维导图
  10. 3dmax如何建模(一)