起因由于songshu.youyacao.com官网偶然发现手机版访问也是pc版,于是紧急讨论并发内部团队成员开始查看,判断代码并无错,由于曾经的判断代码失效

得到以下解决:

原来已经失效的代码:


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,否则为truereturn 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
// define('VIEW_PATH', '../template/pc/');
//改为手机+pcif (isMobile()) {define('VIEW_PATH', '../template/mobile/');
} else {define('VIEW_PATH', '../template/pc/');
}// [ 应用入口文件 ]
define('TIME', date("Y-m-d H:i:s", time()));
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

经过改造最近可用代码:

$useragent=$_SERVER['HTTP_USER_AGENT'];
if(preg_match('/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i',$useragent)||preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i',substr($useragent,0,4))) {define('VIEW_PATH', '../template/mobile/');
} else {define('VIEW_PATH', '../template/pc/');
}
// header('Location: http://detectmobilebrowser.com/mobile');// [ 应用入口文件 ]
define('TIME', date("Y-m-d H:i:s", time()));
// 定义应用目录
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架引导文件
require __DIR__ . '/../thinkphp/start.php';

可以直接顺走使用

新版判断PC和手机端代码,手机端跳转手机端,PC跳转PC端最新有效代码相关推荐

  1. html自动跳转手机端,用JavaScript实现网站自动跳转电脑PC端与手机端不同页面

    前天,有一个网友希望在其微擎系统跳转的时候实现鉴别用户不同的客户端,比如电脑PC端和手机端,实现不同的页面跳转.对于之前老蒋有给其设置过PC端网站然后检测手机访问的时候跳转到WAP网站的案例,对于这个 ...

  2. 自动跳转手机版和电脑版html代码,分享两个手机访问pc网站自动跳转手机端网站代码...

    4G降临,移动网站已经一发不可收拾,pc端和移动端官网并存.如何让别人访问你的pc端的官网直接跳转到移动端的网站呢?各位看官,小二上代码!来了! 常用的访问pc自动跳转到移动页面的代码 (functi ...

  3. 在html中写响应式布局的代码,手机端自适应响应式框架,移动端响应式布局代码...

    移动端自适应框架,响应式布局,如何实现移动端不同分辨率的手机?在本文能够详解,响应式布局是HTML5和css的结合是必然,但是很多朋友不知道怎么实现不同分辨率下的手机端,自适应框架在本站也有,但是具体 ...

  4. 基于Java的TCP Socket通信详解(计算机端/Android手机端)

    TCP Socket通信是一种比较常用的基于连接的网络通信方式.本文通过Java实现TCP Socket通信,并将其用于计算机端.Android手机端,同时做到代码规范化,实现代码最大化复用. 本文代 ...

  5. 关于代码手写UI,xib和StoryBoard

    代码手写UI 这种方法经常被学院派的极客或者依赖多人合作的大型项目大规模使用.Geek们喜欢用代码构建UI,是因为代码是键盘敲出来的,这样可以做到不开IB,手不离开键盘就完成工作,可以专注于编码环境, ...

  6. 【Xamarin挖墙脚系列:代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧(转)】...

    正愁如何选择构建项目中的视图呢,现在官方推荐画板 Storybord...但是好像 xib貌似更胜一筹.以前的老棒子总喜欢装吊,用代码写....用代码堆一个HTML页面不知道你们尝试过没有.等页面做出 ...

  7. 代码手写UI,xib和StoryBoard间的博弈,以及Interface Builder的一些小技巧

     http://www.cocoachina.com/industry/20140102/7640.html 最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作 ...

  8. 计算机音乐数字乐谱梦中的婚礼,乐谱梦中的婚礼代码是什么-天谕手游梦中的婚礼歌曲最新乐谱代码分享 - QT软件园...

    乐谱梦中的婚礼代码是什么?天谕游戏中梦中的婚礼这首歌是非常魔性的,冒险家可以将梦中的婚礼的歌曲代码复制进游戏中,创建属于自己的歌曲,这样就能在游戏中弹奏了,QT小编今天为大家带来天谕手游梦中的婚礼歌曲 ...

  9. 计算机主机内置音箱,折腾PC 篇一:动动手就赚好几万,把音箱整合到机箱里

    折腾PC 篇一:动动手就赚好几万,把音箱整合到机箱里 2021-02-03 16:06:36 14点赞 25收藏 38评论 首先奉上B站链接,内含整个操作流程 故事是这样的,有一天收拾电脑桌,角落那一 ...

最新文章

  1. 从入门到深入:移动平台模型裁剪与优化的技术探索与工程实践
  2. 关于C#使用Shockwaveflash控件设计器不显示问题的解决方案
  3. linux目录和文件管理命令
  4. Windows Android Studio生成javadoc
  5. fatal error C1083: 无法打开包括文件:“stdio.h
  6. linux文件目录的管理,Linux文件目录管理
  7. KMP算法详解P3375 【模板】KMP字符串匹配题解
  8. java9什么时候公布_Java 9正式版有可能被推迟到9月21号发布
  9. 宝鸡市二检理科数学跟踪训练题
  10. 老上网本不能上无线网
  11. android socket_Android 10.0系统启动之Zygote进程(四)-「Android取经之路」
  12. TDengine C/C++ Connector
  13. javascript_core之正则、Math、Date
  14. 学习强国中车万翔老师回文数代码在python3.7中输出inf问题
  15. div 设置a4大小_打印A4网页大小设置
  16. 2022-08-08 第二小组 张明旭 Java学习记录
  17. proxmox VE开NAT小鸡 无法联网,怎么开NAT模式
  18. 符号熵(附matlab代码)
  19. Python基本语法一
  20. linux qnx 开发平台,QNX学习笔记之QNX Momentics IDE开发工具使用笔记

热门文章

  1. 寓言之政府和计划生育——写在30年后的又一次改革——上海自贸区的成立
  2. Ubuntu 20.04 安装Azure Kinect SDK和ROS driver以及遇到k4a的报错
  3. 一鸣心所向:日增3倍+粉丝量?
  4. OnlyOffice验证(四)MoblieWeb编译
  5. Error:java: Annotation processing is not supported for module cycles.项目启动报错 异常解决
  6. opencv笔记(三十一)——Mat 矩阵数据类型转换convertTo
  7. 贪吃蛇之智能蛇的实现
  8. 快乐寒假二,有计划,有坚持,有收获
  9. 欧洲游记之——在丹麦上班的日子(一)
  10. Linux下的视频采集(V4L2)