PHP 判断手机端还是web端
2024-08-23 07:35:51
function isMobile(){
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))
return true; //此条摘自TPM智能切换模板引擎,适合TPM开发
if(isset ($_SERVER['HTTP_CLIENT'])
&&'PhoneClient'==$_SERVER['HTTP_CLIENT'])
return true;
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
if (isset ($_SERVER['HTTP_VIA']))
//找不到为flase,否则为true
return stristr($_SERVER['HTTP_VIA'],
'wap') ? true : false;
//判断手机发送的客户端标志,兼容性有待提高
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;
}
}
//协议法,因为有可能不准确,放到最后判断
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;
}
//判断是pc端还是手机端
if(isMobile()){
C('DEFAULT_V_LAYER','Mobile');
}
最新文章
- Pramp mock interview (4th practice): Matrix Spiral Print
- 华盛顿大学 Programming Languages
- React的第一步
- Nginx下配置SSL安全协议
- 用minidwep-gtk研究wifi
- ios中怎么样调节占位文字与字体大小在同一高度
- d3可视化实战01:理解SVG元素特性
- php在cli和cgi方式下获取服务器ip的实例
- 关于Promise的一个案例
- 兼容Firefox和IE的onpropertychange事件oninput
- 关于“Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次”的问题
- 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
- 敏捷开发相关编辑思想(SOA、DDD、REST、CQRS)
- 160道Java技术面试题
- system v 共享内存
- HTML 表格实例
- asp.net 获得域名,端口,虚拟目录[转]
- 《C++标准程序库》笔记之三
- HTC Vive开之unity3d开发
- 来自苹果的编程语言——Swift简单介绍【整理】
热门文章
- NET CORE通过NodeService调用js
- PR全套插件一键安装
- 第一章、Docker 简介
- mongodb 学习之——mongod --help 中文解释
- UML—20—003
- Cisco Packet Tracer NAT模拟实验
- Laravel Argument 1 passed to App\Models\Recipients\AlertRecipient::__construct() must be an instance of App\Models\Recipients\string, string given,
- 记一次真实的webpack优化经历
- 每天学习一点ES6(二)let 和 const
- MySQL 存储函数的创建、调用、查找