手机端访问时调用Wap手机模块,实现在手机端访问时展示出手机网站,无需跳转域名
首先我们在./Application/Common/Conf/ 目录下建立两个公共配置文件:config.php 和config_wap.php

config.php 中:

  1. return array(
  2. 'DEFAULT_MODULE'=>'Index',
  3. 'DEFAULT_CONTROLLER'=>'Index',
  4. 'DEFAULT_ACTION'=>'index',
  5. )
复制代码

config_wap.php 中:

  1. return array(
  2. 'DEFAULT_MODULE'=>'Wap',
  3. 'DEFAULT_CONTROLLER'=>'Index',
  4. 'DEFAULT_ACTION'=>'index',
  5. )
复制代码

然后在入口文件 index.php 中加入手机端判断方法(建议放到最下面):

  1. function is_mobile_request(){
  2. $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';
  3. $mobile_browser = '0';
  4. if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i', strtolower($_SERVER['HTTP_USER_AGENT'])))
  5. $mobile_browser++;
  6. if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))
  7. $mobile_browser++;
  8. if(isset($_SERVER['HTTP_X_WAP_PROFILE']))
  9. $mobile_browser++;
  10. if(isset($_SERVER['HTTP_PROFILE']))
  11. $mobile_browser++;
  12. $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));
  13. $mobile_agents = array(
  14. 'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',
  15. 'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',
  16. 'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',
  17. 'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',
  18. 'newt','noki','oper','palm','pana','pant','phil','play','port','prox',
  19. 'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',
  20. 'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',
  21. 'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',
  22. 'wapr','webc','winw','winw','xda','xda-'
  23. );
  24. if(in_array($mobile_ua, $mobile_agents))
  25. $mobile_browser++;
  26. if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)
  27. $mobile_browser++;
  28. // Pre-final check to reset everything if the user is on Windows
  29. if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)
  30. $mobile_browser=0;
  31. // But WP7 is also Windows, with a slightly different characteristic
  32. if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)
  33. $mobile_browser++;
  34. if($mobile_browser>0)
  35. return true;
  36. else
  37. return false;
  38. }
复制代码

然后,我们开始用关键的APP_STATUS来调用不同的模块:
在index.php文件中的21行后面也就是“定义应用目录”结束后,加入代码:

  1. if(is_mobile_request()){
  2. define('APP_STATUS','config_wap');
  3. }else{
  4. define('APP_STATUS','Index');
  5. }
复制代码

大功告成。
参考文档:http://document.thinkphp.cn/manual_3_2.html#load_config

【推广】 【选型推荐】0基础1小时建站,满足多种建站需求
【推广】 ThinkPHP5.0 入门必读系列 [ 官方出品 ]

转载于:https://www.cnblogs.com/wzjwffg/p/9883845.html

TP3.2.x判断手机端访问并设置默认访问模块的方法 - ThinkPHP框架相关推荐

  1. html页面判断是手机端访问,JS 判断手机端和pc端后跳转对应页面

    判断手机端和pc端 (function () { var sUserAgent = navigator.userAgent; if (sUserAgent.indexOf('Android') > ...

  2. js判断手机端还是电脑PC端(以及注意事项)

    在router.index中声明方法,在导航守卫中调用并跳转 要注意跳转的网址必须加上 http 或https 1: 不加是不会打开外网的连接,会在你服务内找localhost:XX/XX, 2:加上 ...

  3. h5手机端适配字体设置

    前言 手机端页面动态设置根元素,适配不同屏幕大小. 开始 <script>//rem为html的字体大小 通过改变html的字体大小达到适配的效果remChange();//监听屏幕改变r ...

  4. Apache 创建虚拟主机目录和设置默认访问页面

    Apache 创建虚拟主机目录和设置默认访问页面 虚拟主机 (Virtual Host) 是在同一台机器搭建属于不同域名或者基于不同 IP 的多个网站服务的技术. 可以为运行在同一物理机器上的各个网站 ...

  5. IIS如何设置默认访问https

    在IIS中设置默认访问https的方法 1.首先,在计算机中使用组合键"win+R"运行"Inetmgr",打开iis管理器: 2.进入到iis管理器页面后,在 ...

  6. MVC5怎么设置默认访问页

    首先所有mvc都有App_Start这个文件夹,内部有RouteConfig.cs这个类(因为mvc版本不同,可能类名不同),这个类就是用来设置默认访问页的 public static void Re ...

  7. php 判断来源 微信客户端_PHP判断手机端、PC端 、微信代码实例

    欢迎大家关注我的其他Github博客和CSDN博客,互相交流! 在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 ...

  8. 微信php示例代码,PHP判断手机端、PC端、微信示例代码分享

    在这里博主为大家分享了PHP判断的两个实例,一是PHP判断是手机端还是PC端,二是PHP判断是否是微信浏览器,供大家参考,具体内容如下 1.判断是否是手机端function isMobile() { ...

  9. tp5框架判断手机端与pc端

    参考网址http://www.php.cn/php-weizijiaocheng-405981.html 1.\application\index\view 中 新建两个文件夹放置手机端网页跟pc端网 ...

最新文章

  1. linux不识别ntfs分区,WinUbuntu下linux无法挂载NTFS格式分区问题的解决
  2. MFC程序在控制台输出的实现
  3. Android Crash战斗日记(一、原理篇)
  4. 字节跳动面试官问我看过哪些源码,然后就没有然后了
  5. python 分布图_python数据分布型图表柱形分布图系列带误差线的柱形图
  6. java hs err pid_JAVA 奔溃 生成hs_err_pid****的文件,求大神看看
  7. 回公司无聊和小冰聊天,很好奇她到底怎么想的
  8. webrtc 判断是否支持_5G时代-WebRTC音视频高级开发
  9. 快手活跃用户预测_哈工大团队解决方案
  10. BIM族库下载——Revit家用电器族库
  11. 微信H5多级分佣开心刮刮乐源码
  12. 个人小项目原型图设计(主页)
  13. 云计算时代,NGINX将是你的“必杀技”
  14. dfs根目录_分布式文件系统DFS详细解读
  15. 一、linux驱动开发-8.1-platform设备驱动
  16. [Windows]获取md5值最简单的工具
  17. 大数据分析与实践 数据预处理-主成分分析
  18. 软件测试面试,一定要准备的7个高频面试题(附答案,建议收藏)
  19. Axure交互之链接行为
  20. Spring:从零开始的Cloud生活(一)——Eureka 深入理解

热门文章

  1. mongodb mysql 写_MySQL和MongoDB语句的写法对照
  2. python百度aip移动目标监控系统_python利用百度云接口实现车牌识别
  3. python变量类型有几种_python十种变量类型
  4. swift使用mysql教程,Swift学习教程之SQLite的基础使用
  5. JVM 运行时数据区域总结
  6. oracle 12c alert,Oracle 12c DG备库Alert报错ORA-01110
  7. python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法
  8. css button 四种状态,css中按钮的四种状态
  9. Leetcode-3 无重复字符的最长子串【c语言】
  10. Leetcode-2 两数相加【c语言】