基于Thinkphp使用同一个域名,PC和M端访问不同模板

作者:神秘网友 发布时间:2020-10-31 19:25:54

基于Thinkphp使用同一个域名,PC和M端访问不同模板

基于Thinkphp使用同一个域名,PC和M端访问不同模板

一、首先目录结构展示:(主要修改这几个文件)
基于Thinkphp使用同一个域名,PC和M端访问不同模板
二、更改入口文件 index.php
require DIR . ‘./isMobile.php’;
基于Thinkphp使用同一个域名,PC和M端访问不同模板
三、在入口文件index.php同级目录下,增加common.php 文件,代码为:

<?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;
}

if(isMobile()){
  define('VIEW_PATH','../application/index/view/m/');
}else{
  define('VIEW_PATH','../application/index/view/pc/');
}

基于Thinkphp使用同一个域名,PC和M端访问不同模板
四、更改config.php中的模板值
‘view_path’ => VIEW_PATH,
基于Thinkphp使用同一个域名,PC和M端访问不同模板

基于Thinkphp使用同一个域名,PC和M端访问不同模板相关教程

  1. 插槽和具名插槽的使用

    插槽和具名插槽的使用 插槽和具名插槽的使用 首先我们先注册一个组件然后在#app内部使用 html:div id=app cpn/cpn br cpn button按钮/button /cpn br cpn input type=text placeholder=请输入名字 /cpn br cpn/cpn /div template id=cpn div h3我是标题/h3 p

  2. react+ts项目中使用jexcel,单元格合并

    react+ts项目中使用jexcel,单元格合并 遇到的问题 1.jexcel 的导入出问题 2.初始化jexcel表格dom节点的获取问题 3.jexcel初始化返回jexcel对象没有获取到的 4.在对代码进行更改后,热更新之后页面会出现多个表格 因为公司做的项目用到了jexcel,今天我的师傅

  3. 使用GridsearchCV时The truth value of an array with more than

    使用GridsearchCV时The truth value of an array with more than one element is ambiguous. 我正在尝试在 python 中使用 scikit-learn 进行分类 。我生成了数据,将其拆分以进行训练和测试,并在模型clf使用了它。 我接下来打算做的是使用 sklearn.model_sel

  4. Oracle VM VirtualBox虚拟机使用问题总结

    Oracle VM VirtualBox虚拟机使用问题总结 我本机的配置是Ubuntu 18.04 +OracleVMVirtualBox虚拟机 (6.1.12) + 虚拟win7操作系统,对虚拟机了解甚少,以下仅为一些实践中的经验: 一、升级后屏幕分辨率问题 最近按照提示将virtaulbox升级到6.1.14,完成后装上

  5. 20201030使用jvisualvm排查内存溢出(OOM)过程

    20201030使用jvisualvm排查内存溢出(OOM)过程 内存溢出在开发中或者线上出现的概率很高,造成的直接结果是系统运行缓慢,或者直接宕机。 在这里模拟下内存溢出的情况以防患于线上出现内存溢出要如何排查问题,线上出问题需要生成一个快照(hprof文件),在

  6. MultiValueMap的使用 和一个键多个值的理解

    MultiValueMap的使用 和一个键多个值的理解 源代码 MultiValueMapString, String multiValueMap =new LinkedMultiValueMap(); multiValueMap.add(aa,aa); multiValueMap.add(aa,bb); multiValueMap.add(aa,cc); multiValueMap.add(aa,dd); multiValueMap.add(

  7. Linux中使用GDB调试程序

    Linux中使用GDB调试程序 gdb的简介及在linux中的使用 一、gdb简介及常用命令介绍 二、gdb调试实例 1、什么是gdb GDB : GNU Debugger,是GNU工程为GNU操作系统开发的 调试器,但它的使用不局限于GNU操作系统, GDB可以运行 在UNIX、Linux甚至Microsoft Window

  8. 如何使用 IntelliJ IDEA 构建父/子工程类型的Maven项目

    如何使用 IntelliJ IDEA 构建父/子工程类型的Maven项目 如何使用 IDEA 构建父/子工程类型的Maven项目 在一家公司里开发,很多项目中使用的jar包80%都是重复的,如果每个项目都要把pom.xml文件的这些依赖包复制过来,或是后期出现统一的版本升级,那修改起来是