thinkphp3.2模块名如何不区分大小写?
2018-12-11 09:05:10来源:博客园 阅读 ()
thinkphp3.2中已配置:'URL_CASE_INSENSITIVE' => true,对于控制器及操作名大小写都可以,但仍对于模块名的大小写就运行机制出错,
比如:http://www.xxxx.com/Home 这是正常的,但换成http://www.xxxx.com/home就出错,
解决方案如下
修改 View.class.php 文件让大小写共存
替换 parseTemplate
public function parseTemplate($template='') { if(is_file($template)) { return $template; } $depr = C('TMPL_FILE_DEPR'); $template = str_replace(':', $depr, $template); // 获取当前模块 $module = MODULE_NAME; if(strpos($template,'@')){ // 跨模块调用模版文件 list($module,$template) = explode('@',$template); } // 获取当前主题的模版路径 defined('THEME_PATH') or define('THEME_PATH', $this->getThemePath($module)); // 分析模板文件规则 if('' == $template) { // 如果模板文件名为空 按照默认规则定位 $template = CONTROLLER_NAME . $depr . ACTION_NAME; }elseif(false === strpos($template, $depr)){ $template = CONTROLLER_NAME . $depr . $template; } $file = THEME_PATH.$template.C('TMPL_TEMPLATE_SUFFIX'); if(C('TMPL_LOAD_DEFAULTTHEME') && THEME_NAME != C('DEFAULT_THEME') && !is_file($file)){ // 找不到当前主题模板的时候定位默认主题中的模板 $file = dirname(THEME_PATH).'/'.C('DEFAULT_THEME').'/'.$template.C('TMPL_TEMPLATE_SUFFIX'); } //URl 大小写转换 if(!is_file($file)){ $file = $this->Get_Url($file); if(!is_file($file)){ $file = $this->Get_Url($file,1); } } return $file; } private function Get_Url($f,$x=''){ $a = explode('/',$f); $b = count($a)-1; foreach ($a as $k => $v){ if($k == $b){ if(empty($x)){ $c .= ucfirst($v).'/'; }else{ $c .= strtolower($v).'/'; } }else{ $c .= $v.'/'; } } return rtrim($c,'/'); }
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Laravel学习教程之View模块详解 2020-01-16
- PHP代码篇(三)--常用方法 2019-07-23
- 【LDAP安装】在已编译安装的PHP环境下安装LDAP模块 2018-12-09
- PHP面向对象的小总结 2018-10-19
- 笔试题——C++开发简单记录错误模块 2018-10-03
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash