我遇到了一个奇怪的问题。我在index.php中包含了一些文件,现在我收到了这个错误:
require(cfg/cfg.database.inc.php) [function.require]: failed to open stream: No such file or directory in C:\...\index.php on line XX
奇怪的是,它只是在一分钟前发挥作用。我仔细检查了该文件名的拼写。
我做了什么:我使用的是Notepad ++,我看到了这样的代码:
require("cfg/cfg.database.inc.php" );
我想删除"
和)
之间的空格,因此我将光标移到那里并推送Del,但它删除了p
的最后.php
。< / p>
我删除了整行并重写了它,现在我收到了无法找到该文件的错误。我还重命名了无效的文件。子目录cfg
中的所有文件都会出现此错误,但不会出现其他子目录中的错误。
任何人都知道我做错了什么或我能做些什么才能找到问题? 感谢。
/ edit:我的文件结构
index.php
cfg/cfg.database.inc.php
cfg/cfg.other.inc.php
core/class.user.inc.php
core/...
所有内容均包含在core
个作品中,均不包括cfg
答案 0 :(得分:1)
subdir cfg中的所有文件都会收到此错误,但不会收到其他子目录中的错误。
尝试:
require("cfg.database.inc.php");
答案 1 :(得分:1)
这种行为通常有两个原因
您的PHP文件和/或您的文件名有一个字符,它作为标准的ascii字母呈现在屏幕上,但实际上是另一种编码中的其他字母
你有多个cfg文件夹,PHP看错了。
试着看看PHP看到哪个cfg文件夹(相对于你的运行脚本),以及它在那里看到的文件。
$my_cfg_files = glob('./*');
接下来,通过迭代循环来尝试需要文件
header('Content-Type: text/plain');
foreach($my_cfg_files as $file)
{
echo 'trying ' . $file . "\n";
require_once($file);
}
exit("\n Done \n");
查看它输出的文件列表。复制脚本打印的内容并将其包含在require语句中。
答案 2 :(得分:0)
可能有空格:
require("cfg.database.inc.php ");
删除它:
require("cfg.database.inc.php");