Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CodeIgniter 3类文件名的大写首字母导致404s 脚本_Codeigniter_Codeigniter 3 - Fatal编程技术网

CodeIgniter 3类文件名的大写首字母导致404s 脚本

CodeIgniter 3类文件名的大写首字母导致404s 脚本,codeigniter,codeigniter-3,Codeigniter,Codeigniter 3,我有一个网站,我正在升级到CodeIgniter 3的当前开发版本。我按照升级说明将所有类文件重命名为大写优先(例如application/controllers/Home.php) 预期结果 对于小写URL,请按常规使用控制器,例如: 使用Home.php控制器 我得到了什么 当url具有小写首字母时,不会自动调用大写文件名。(404错误) 我试过了 在URL中键入控制器的大写首字母, 即,这将生成控制器作为 预料之中 大写routes.php中的默认控制器,它生成 页面按预期显示。但是,

我有一个网站,我正在升级到CodeIgniter 3的当前开发版本。我按照升级说明将所有类文件重命名为大写优先(例如application/controllers/Home.php)

预期结果 对于小写URL,请按常规使用控制器,例如:

使用Home.php控制器

我得到了什么 当url具有小写首字母时,不会自动调用大写文件名。(404错误)

我试过了
  • 在URL中键入控制器的大写首字母, 即,这将生成控制器作为 预料之中
  • 大写routes.php中的默认控制器,它生成 页面按预期显示。但是,如果这意味着我必须更改所有的URL 要将控制器包含为大写的第一个字母,这是较少的 不太理想
笔记
  • 该站点运行在PHP5.3.17 FastCGI上
  • index.php已从URL中删除,其.htaccess规则为:

非常感谢您的帮助

编辑1 我已经把它缩小到核心路由器中的
\u validate\u request
功能。如果我从
\u set\u request
中注释掉对该函数的调用,它就可以工作

编辑2
如果我将
\u validate\u request
函数的名称更改为
\u validate\u request2
,并使用新名称调用它,那么它工作得非常好。这个函数名是保留字吗?

在注释中解决了这个问题,写这个只是为了让它正式


升级时,您必须始终检查是否有核心CodeIgniter库的扩展。如果是这样的话,很有可能是您至少对其中的一部分进行了重载,并且在更改原始代码时可能会中断应用程序。

在我的网站上,我也遇到了同样的问题。 因此,我用大写字母命名了所有控制器文件,如Home.php,并用小写字母命名了所有方法,如index()。然后在URI请求中:我输入每个
,作为内部命名的控制器。比如ComingSoon.php:

class ComingSoon extends CI_Controller {}
HTML:


文件夹对您来说是可选的,但视图名称必须完全相同。

如果有人需要,这一个对我来说非常有用:

for f in *php ; do mv "$f" "$(\sed 's/.*/\u&/' <<< "$f")" ; done

用于*php中的f;做mv“$f”$(\sed's/*/\u&/'对我来说很好。你从系统/目录中复制了所有内容吗?是的。我昨天下载了最新开发的zip文件,并多次重新上传系统以确保我没有发疯。还有其他文件调用该函数吗?没有,你有没有可能有一个应用程序/core/MY_Router.php文件?或者任何自定义的routes?啊,是的,是的,我知道。它正在覆盖那个功能。非常感谢。(这个网站已经有2年历史了,我完全忘了为什么要覆盖它。)Brilliant mate…为我节省了大量时间。
<a href="ComingSoon/index">
PHP View Include must look like:
$this->load->view("comingsoon/view.php");
for f in *php ; do mv "$f" "$(\sed 's/.*/\u&/' <<< "$f")" ; done