thinkphp如何根据设备访问不同模板

thinkphp根据设备访问不同模板的方法:1、把“function isMobile(){…}”放在“appcommon.php”公共方法中;2、在index模块下的公共方法内设置前置操作;3、判断为true则执行“mobile/index”方法,否则执行另一个pc端的控制器操作即可。

thinkphp5判断移动或pc端访问并调用不同模板

把下面的代码放在appcommon.php公共方法那里。

function isMobile(){if (isset($_SERVER[‘HTTP_X_WAP_PROFILE’])) {return true;}if (isset($_SERVER[‘HTTP_VIA’])) {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’);if (preg_match(“/(” . implode(‘|’, $clientkeywords) . “)/i”, strtolower($_SERVER[‘HTTP_USER_AGENT’]))) {return true;}}if (isset($_SERVER[‘HTTP_ACCEPT’])) {if ((strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) !== false) && (strpos($_SERVER[‘HTTP_ACCEPT’], ‘textml’) === false || (strpos($_SERVER[‘HTTP_ACCEPT’], ‘vnd.wap.wml’) < strpos($_SERVER[‘HTTP_ACCEPT’], ‘textml’)))) {return true;}}return false;}

再在index模块下的公共方法内设置前置操作,如果判断为true则执行mobile/index方法(移动端的控制器),否则则执行另一个pc端的控制器操作

public function _initialize(){if(isMobile()){$this->redirect(‘mobile/index’);}}

方法2

AiPPT模板广场 AiPPT模板广场

AiPPT模板广场-PPT模板-word文档模板-excel表格模板

AiPPT模板广场 147 查看详情 AiPPT模板广场

立即学习“PHP免费学习笔记(深入)”;

把方法放在app/common。php文件夹里面

// 应用公共文件//判断客户端访问方式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;}

以上就是thinkphp如何根据设备访问不同模板的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/305663.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
虫虫漫画直接进入官网入口_虫虫漫画网页版清爽版
上一篇 2026年10月27日 00:40:14
html源码怎么保存为本地代码文件_html源码保存为本地代码文件的教程
下一篇 2025年12月23日 05:50:55

相关推荐

  • thinkphp中怎么关闭未定义变量提示

    一、为什么会出现未定义变量 未定义变量通常会在以下情况中出现: 变量拼写错误。 变量未被声明或赋值。 立即学习“PHP免费学习笔记(深入)”; 变量作用域不正确。 二、如何关闭未定义变量提示 We can turn off undefined variable notice by modifying…

    用户投稿 2026年10月27日
    200
  • thinkphp fetch方法怎么用

    Fetch method in ThinkPHP framework is a rendering method that is primarily used to load view pages and render them.。首先要找到ThinkPHP框架中的View类,因为这个方法是在该类中…

    2026年10月26日
    000
  • thinkphp如何设置单页

    一、什么是单页应用 单页应用,英文为Single-Page Application,简称SPA,它是一种基于Ajax和HTML5等技术,通过动态的加载页面局部内容来优化用户体验的web应用程序。与传统的应用程序不同,单页应用只包含一个HTML页面,通过JavaScript将页面内容动态载入,从而实现…

    2026年10月26日
    100
  • thinkphp5如何去除重复查询

    一、使用 SELECT DISTINCT 关键字 在 SQL 语句中,可以使用 SELECT DISTINCT 关键字来获取不重复的数据。在 ThinkPHP5 中,使用 thinkDb 类的 query() 方法执行 SQL 查询语句时,可以直接在查询条件中使用 SELECT DISTINCT 关…

    2026年10月26日
    000
  • 怎么使用thinkphp进行数据求和并排行

    步骤1:连接数据库 访问ThinkPHP官网并下载最新版本,然后解压并将其放置在服务器环境中。在ThinkPHP的目录中,需要创建一个名为Test的项目,然后在该项目中创建一个控制器和模型来获取数据。 // application/index/controller/Index.phpnamespac…

    2026年10月26日
    100
  • 如何在ThinkPHP6中使用腾讯云IM进行实时通信操作?

    随着互联网和移动互联网的快速发展,实时通信技术已经成为了许多应用中不可或缺的一环。而腾讯云im(即即时通信im)作为国内领先的实时通讯平台之一,其功能和性能也得到了广泛的认可。本文将介绍如何在thinkphp6框架中使用腾讯云im进行实时通信操作。 一、申请腾讯云IM账号 首先,需要到腾讯云官网(h…

    2026年10月26日
    100
  • ThinkPHP6中如何进行RBAC权限管理?

    随着互联网的不断发展和应用的广泛运用,越来越多的网站和应用程序要求实现访问权限的控制,以确保敏感信息和资源的安全性。而随着项目的不断发展和功能的不断增加,rbac权限管理系统已经成为了一种非常流行和成熟的解决方案。在本文中,我们将介绍如何在thinkphp6框架中使用rbac进行权限管理。 什么是R…

    2026年10月26日
    100
  • 如何在ThinkPHP6中使用支付宝开放平台?

    如何在ThinkPHP6中使用支付宝开放平台?如何在ThinkPHP6中使用支付宝开放平台?如何在ThinkPHP6中使用支付宝开放平台?如何在ThinkPHP6中使用支付宝开放平台?

    随着电子商务的普及和发展,安全便捷的在线支付方式已经成为消费者不可或缺的服务。支付宝作为国内最大的在线支付平台之一,为数以亿计的用户提供着信任与便利,对于企业而言,也是进行支付业务必不可少的选择。本文将介绍如何在thinkphp6框架下使用支付宝开放平台,以方便企业进行支付业务。 一、 准备工作 在…

    2026年10月26日 • 用户投稿
    000
  • 怎样在ThinkPHP6中使用WangEditor富文本编辑器?

    随着互联网的快速发展,富文本编辑器已经成为了网站开发过程中不可缺少的一部分。而wangeditor作为国内开源的一款富文本编辑器,其具备易用、轻量、功能丰富等优秀特点,已经逐渐成为了很多开发者的首选。 而ThinkPHP6作为目前国内最主流的PHP开发框架之一,也提供了丰富的扩展功能,可以帮助开发者…

    2026年10月26日
    100
  • ThinkPHP6中如何实现API版本控制?

    随着web技术的发展和应用场景的不断扩大,api已经成为很多企业与开发者的重要的技术组成部分,版本控制也成为api设计的规范之一。本文将介绍如何在thinkphp6框架中实现api版本控制。 了解版本控制 版本控制是一种维护代码或文档变更历史记录的方式。在API设计中,版本控制是确保API不会在任何…

    2026年10月26日
    1000
  • 如何在ThinkPHP6中使用友好的URL地址?

    随着互联网的发展,越来越多的网站需要考虑优化用户体验,其中一个方面就是友好的url地址。thinkphp 是一款优秀的 php 框架,对于 url 地址的处理也提供了便捷的解决方案。本文将介绍如何在 thinkphp6 中使用友好的 url 地址。 首先,我们需要了解下 ThinkPHP6 中关于路…

    2026年10月26日
    000
  • 如何在ThinkPHP6中进行异常处理?

    thinkphp6是一款非常流行的php框架,已经被广泛应用于各种web应用程序中。在开发过程中,可能会遇到各种异常,如果不及时处理,就会导致程序无法正常运行。本文将介绍如何在thinkphp6中进行异常处理,保证web应用程序的稳定性和可靠性。 异常处理的概念 异常处理是指在程序正常执行过程中,遇…

    2026年10月26日
    200
  • 怎样在ThinkPHP6中进行菜单管理操作?

    thinkphp6是一款高效、安全、稳定的php开发框架,它采用了优秀的mvc(model-view-controller)设计模式,为开发人员提供了灵活且简单的开发方式。在它的帮助下,开发人员可以快速开发强大的web应用程序。 对于大多数Web应用程序而言,菜单管理都是必不可少的功能。本文将介绍在…

    2026年10月26日
    100
  • ThinkPHP6中如何使用Phinx进行数据库迁移?

    随着web应用程序的迅猛发展,数据库作为应用程序的一部分,也被赋予了更高的重要性。对于web开发者来说,数据库数据的安全性、可靠性和稳定性都是至关重要的。数据表的设计和管理也是开发工作的关键部分,因此数据迁移成为数据库操作的重要方法之一。 Phinx是一个PHP库,它可以帮助开发人员对应用程序进行数…

    2026年10月26日
    000
  • 怎样在ThinkPHP6中使用Ajax进行异步操作?

    随着web应用程序的不断发展,使用ajax进行异步操作已经成为了web开发的常见需求。在thinkphp6框架中,通过ajax进行异步操作也非常简单。本文将介绍怎样在thinkphp6中使用ajax进行异步操作。 一、什么是Ajax? Ajax全称为Asynchrnous JavaScript An…

    2026年10月26日
    300
  • ThinkPHP6中如何实现多语言网站?

    thinkphp6是一款优秀的php开发框架,它提供了非常良好的代码管理和可扩展性。在实际开发中,随着全球化的趋势,越来越多的网站需要提供多语言支持。那么在thinkphp6中,如何实现多语言网站呢?本文将从以下四个方面进行讲解。 一、配置文件中定义多语言变量 在ThinkPHP6中,非常推荐通过配…

    2026年10月26日
    100
  • ThinkPHP6中如何使用Ioc容器实现依赖注入?

    在现代的php开发中,依赖注入是一项不可或缺的技术。它允许我们更轻松地管理代码的复杂度,并促进代码重用和可维护性。而thinkphp6作为一款流行的php框架,也提供了一种简便的方式来实现依赖注入——ioc容器。 Ioc容器即Inversion of Control(Container),它是一个通…

    2026年10月26日
    300
  • 怎样在ThinkPHP6中进行多文件上传操作?

    随着互联网技术的不断进步,越来越多的网站和应用需要进行文件上传操作。在此背景下,thinkphp6作为一款优秀的php框架,也为多文件上传提供了便捷的操作方式。本文将介绍如何在thinkphp6中进行多文件上传操作。 一、上传文件的相关代码 在ThinkPHP6中,上传文件的代码位于控制器文件中。以…

    2026年10月26日
    300
  • 怎样在ThinkPHP6中进行RESTful API开发?

    随着互联网的快速发展,越来越多的应用需要提供api接口,供不同的客户端(web、app、小程序等)调用。为了提高接口开发效率和可维护性,restful api逐渐成为了api设计的标准之一。那么,在thinkphp6中怎样进行restful api开发呢?接下来我们就来简要介绍一下。 一、什么是RE…

    2026年10月26日
    500
  • ThinkPHP6中如何进行消息队列操作?

    随着互联网的发展,应用场景越来越复杂,性能要求也越来越高。消息队列(message queue)是一种典型的异步通信的方式,可以在高并发的场景下提高程序的性能和稳定性。而在php语言中,thinkphp6框架也提供了消息队列的支持,本文将简单介绍如何在thinkphp6中进行消息队列操作。 环境搭建…

    2026年10月26日
    000

发表回复

登录后才能评论
关注微信