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判断访客是否移动端浏览器访问的四种方法相关推荐
- js之删除对象属性的三种方法 判断对象中是否有某一属性的四种方法
js之删除对象属性的三种方法 & 判断对象中是否有某一属性的四种方法 示例 1.基础版 var a = { id: 18, age: 20, name: "zhangsan" ...
- footer属性css,CSS基础-footer元素始终粘在浏览器底部的四种方法
本文介绍底部footer元素如何始终粘在浏览器底部.当内容container足够多.可以撑开一屏的时候,底部footer紧跟在内容container后边:而内容container不够多.不足以撑开一屏 ...
- WordPress 如何判断访客浏览器显示不同内容
WordPress 如何判断访客浏览器 主题模板适当位置添加调用: <?phpglobal $is_IE;if ($is_IE) {echo '您正在使用不安全的IE浏览器,请使用现代浏览器,浏 ...
- PHP判断pc和移动端跳转,JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址...
JS判断是PC还是移动端浏览器,并根据不同的终端跳转到不同的网址 function browserRedirect() { var sUserAgent = navigator.userAgent.t ...
- 判断是pc还是移动端浏览器
通过JavaScript判断终端类型 //把请求头信息转为小写 //user agent是指用户代理,使服务器能够识别客户使用的操作系统及版本.CPU 类型.浏览器及版本.浏览器渲染引擎.浏览器语言. ...
- html js清除缓存,js清除浏览器缓存的几种方法
JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当js 文件有改动的时候, ...
- 实现和IE浏览器交互的几种方法
实现和IE浏览器交互的几种方法 浙江大学计算机系 (310027) 胡朝晖 陈奇 俞瑞钊 如何实现对IE浏览器中对象的操作是一个很有实际意义的问题 ...
- ajax请求时清除浏览器缓存,js清除浏览器缓存的几种方法
JS 缓存的问题一直都是我们又爱又恨的东西.也是我们比较头痛的问题, 一方面为了提高网站响应速度,减少服务器的负担,和节省带宽,将需要将静态资源缓存在客户端, 但是另一方面,当 js 文件有改动的时候 ...
- Java 判断字符串是否为空的四种方法、优缺点与注意事项
以下是Java 判断字符串是否为空的四种方法: 方法一: 最多人使用的一个方法, 直观, 方便, 但效率很低: if(s == null ||"".equals(s)); 方法二: ...
- 由浅入深CIL系列:5.抛砖引玉:判断string是否为空的四种方法的CIL代码看看效率如何?...
本节将接触几个新的CIL操作码如下 ldc.i4.0 将整数值 0 作为 int32 推送到计算堆栈上 Ceq 比较两个值.如果这两个值相等,则将整数值 1 (int32) ...
最新文章
- 不懂SOLID,GRASP这些软件开发原则!写出来的代码都是垃圾!
- 理解正则表达式(程序员第3期文章)
- html台风路径,常用气象网站功能简介
- Android之内存溢出(Out Of Memory)的总结
- jeecg自定义结果集t:dictSelect
- python手绘效果图_2020高校邦《马克笔手绘效果图》判断题答案2020高校邦《网络数据采集与Python爬虫(山东大学定制班级)》见面课测试答案...
- 最低服务器协议,的WebSocket服务器最低要求
- scrapy框架之分布式操作
- C++ Programming with TDD之一:GMOCK框架简介
- 10月17日云栖精选夜读:什么是新零售?阿里巴巴最新的报告终于说清楚了!(附报告)...
- PAIP.在程序中设置壁纸墙纸
- CC2530串口通信
- html 编辑器 拖动,可视化拖拽页面编辑器 一
- smartbi问题_SAP BO的五大尴尬,Smartbi就是HANA用户的“菜”
- python中patch的使用
- JS中attr和prop区别
- 我的世界java版高效率刷怪塔_我的世界超高效率刷怪塔制作教程 砍怪砍到手抽筋...
- 我的世界杯 - 诸神黄昏之战
- 中了勒索病毒怎么办?怎么预防
- matlab模拟土壤水分入渗,基于HYDRUS-3D的涌泉根灌土壤入渗数值模拟