iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >thinkphp如何根据设备访问不同模板
  • 872
分享到

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

2023-07-04 20:07:33 872人浏览 独家记忆
摘要

今天小编给大家分享一下thinkPHP如何根据设备访问不同模板的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。thinkphp

今天小编给大家分享一下thinkPHP如何根据设备访问不同模板的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

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

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

把下面的代码放在app\common.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

把方法放在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如何根据设备访问不同模板”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网PHP编程频道。

--结束END--

本文标题: thinkphp如何根据设备访问不同模板

本文链接: https://www.lsjlt.com/news/347247.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • thinkphp如何根据设备访问不同模板
    今天小编给大家分享一下thinkphp如何根据设备访问不同模板的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。thinkphp...
    99+
    2023-07-04
  • php如何模拟不同ip访问
    今天小编给大家分享一下php如何模拟不同ip访问的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。php模拟不同ip访问的方法:...
    99+
    2023-07-04
  • 如果功能在不同模块中如何访问数据库?
    php小编子墨在这里为大家解答一个常见的问题:如果在不同模块中访问数据库,应该如何操作呢?在开发过程中,我们经常需要在不同的功能模块中访问数据库,这涉及到如何管理数据库连接和执行数据库...
    99+
    2024-02-10
  • SpringBoot 如何根据不同profile选择不同配置
    SpringBoot 根据不同profile选择不同配置 附上pom的 profiles配置 <build> <finalName>${pro...
    99+
    2024-04-02
  • thinkphp加路径访问不到如何解决
    本篇内容主要讲解“thinkphp加路径访问不到如何解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“thinkphp加路径访问不到如何解决”吧!一、问题原因当我们在页面中加入路径时,例如:&l...
    99+
    2023-07-05
  • MySQL如何根据不同条件显示不同的结果
    要根据不同条件显示不同的结果,你可以使用MySQL的CASE语句。CASE语句类似于编程语言中的switch语句,它允许你根据不同的...
    99+
    2024-04-09
    MySQL
  • VBScript如何根据盘符找设备名
    这篇文章主要介绍VBScript如何根据盘符找设备名,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!复制代码 代码如下:On Error Resume NextstrComputer = "." S...
    99+
    2023-06-08
  • AngularJS如何实现根据不同条件显示不同控件
    这篇文章将为大家详细讲解有关AngularJS如何实现根据不同条件显示不同控件,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。由于项目需求,需要实现根据不同条件显示不同控件...
    99+
    2024-04-02
  • HTML5如何实现根据不同浏览器播放不同格式
    HTML5如何实现根据不同浏览器播放不同格式,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。通过Html5的Video标签语法,我们可以快速的在...
    99+
    2024-04-02
  • vue如何根据不同的环境使用不同的接口地址
    目录vue根据不同的环境使用不同的接口地址vue不同环境,请求不同环境的接口.env文件创建.env文件修改启动命令,加载不同的.env文件 获取环境变量总结vue根据不同...
    99+
    2023-05-16
    vue不同环境 vue接口地址 vue接口
  • vue中要如何根据路径来访问文件
    本文小编为大家详细介绍“vue中要如何根据路径来访问文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue中要如何根据路径来访问文件”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一般情况下,Vue.js 的文...
    99+
    2023-07-05
  • 如何快速设置共享文件访问权限及设置不同用户访问共享文件
    本篇内容介绍了“如何快速设置共享文件访问权限及设置不同用户访问共享文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!为了保护服务器共享文件的...
    99+
    2023-06-13
  • vue如何在多个不同服务器下访问不同地址
    目录一、前言二、实现思路三、实践1. 获取axios请求地址2. 配置不同服务器的地址3. 打包时根据 process.env.NODE_ENV 判断不同环境4....
    99+
    2024-04-02
  • 如何编写 C++ 函数模板以处理不同类型的数据?
    函数模板允许您创建泛型函数,这些函数可以处理不同类型的数据。它们通过使用类型参数来实现,该参数可以在调用函数时替换为任何有效的数据类型。函数模板优点包括可重用性、代码简洁性和效率,因为编...
    99+
    2024-04-15
    数据类型 函数模板 c++
  • linux系统中是如何访问设备的
    这篇文章主要介绍“linux系统中是如何访问设备的”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“linux系统中是如何访问设备的”文章能帮助大家解决问题。 ...
    99+
    2023-03-02
    linux
  • 如何解决C++访问者模式模板函数无法重载的问题
    本篇内容主要讲解“如何解决C++访问者模式模板函数无法重载的问题”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何解决C++访问者模式模板函数无法重载的问题”吧!背景最近遇到一个比较棘手的场景,...
    99+
    2023-06-22
  • 【Java】itext 实现 html根据模板生成pdf 中文不显示/图片不显示问题解决
    引言: 工作中需要使用生成pdf记录,选取使用的是itext 生成 pdf方式。分享下实现方式及遇到的问题。 实现效果 这里随便找个html课程表作为示例,添加了几张图片为了展示图片转pdf功能。 ...
    99+
    2023-10-27
    java html pdf
  • 网站备案如何不关站访问教程
    在我们的网站提交备案的过程中,经常会遇到一些网站已经有内容,但是备案要求这个网站不能访问。 如果此时直接关闭整个网站,将对网站的权重和流量产生相当大的影响 ,毕竟网站备案不是一两天就能完成的。 这时候可以用一个比较取巧的方法,只关闭网站首页...
    99+
    2023-09-10
    php 开发语言
  • Jinja2如何实现模板渲染与访问对象属性
    这篇“Jinja2如何实现模板渲染与访问对象属性”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Jinja2如何实现模板渲染与...
    99+
    2023-07-05
  • 微信小程序如何根据不同用户切换不同TabBar(简单易懂!)
    目录现有需求:1全局.app.json2.自定义custom-tab-bar结果展示总结现有需求: 小程序用户有三种身份(公众、运维人员、领导),根据不同用户身份显示不同的tabba...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作