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');
}

最新文章

  1. Pramp mock interview (4th practice): Matrix Spiral Print
  2. 华盛顿大学 Programming Languages
  3. React的第一步
  4. Nginx下配置SSL安全协议
  5. 用minidwep-gtk研究wifi
  6. ios中怎么样调节占位文字与字体大小在同一高度
  7. d3可视化实战01:理解SVG元素特性
  8. php在cli和cgi方式下获取服务器ip的实例
  9. 关于Promise的一个案例
  10. 兼容Firefox和IE的onpropertychange事件oninput
  11. 关于“Xshell连接linux(deepin)时提示ssh服务器拒绝了密码,请再试一次”的问题
  12. 状态机编程思想(2):删除代码注释(目前支持C/C++和Java)
  13. 敏捷开发相关编辑思想(SOA、DDD、REST、CQRS)
  14. 160道Java技术面试题
  15. system v 共享内存
  16. HTML 表格实例
  17. asp.net 获得域名,端口,虚拟目录[转]
  18. 《C++标准程序库》笔记之三
  19. HTC Vive开之unity3d开发
  20. 来自苹果的编程语言——Swift简单介绍【整理】

热门文章

  1. NET CORE通过NodeService调用js
  2. PR全套插件一键安装
  3. 第一章、Docker 简介
  4. mongodb 学习之——mongod --help 中文解释
  5. UML—20—003
  6. Cisco Packet Tracer NAT模拟实验
  7. Laravel Argument 1 passed to App\Models\Recipients\AlertRecipient::__construct() must be an instance of App\Models\Recipients\string, string given,
  8. 记一次真实的webpack优化经历
  9. 每天学习一点ES6(二)let 和 const
  10. MySQL 存储函数的创建、调用、查找