2012-07-09 116 views
1

当一切工作正常时,我已经创建了与以前相同的超级简单脚本。但不知何故停了,现在每次我尝试需要一个文件时,它给我的错误:require_once致命错误(多一次)

Fatal error: require_once(): Failed opening required 'E:\tools\EasyPHP\www/registry/registry.class.php' (include_path='.;C:\php\pear') in E:\tools\EasyPHP\www\index.php on line 18

我的索引文件:

define("APP_PATH", dirname(__FILE__)."/"); 
require_once(APP_PATH.'registry/registry.class.php'); 

这就是一切,但我仍然无法加载页面。

我应该如何设置它?我只使用Windows本地构建。

+0

file_exists(APP_PATH.'registry/registry.class.php')给出了什么?如果为false,则根据文件的预期路径检查APP_PATH.'registry/registry.class.php' – Ing 2012-07-09 14:14:21

+3

可能是愚蠢的问题,但存在'E:\ tools \ EasyPHP \ www/registry/registry.class.php'吗? – Florent 2012-07-09 14:15:20

+0

是的,但它表明,它甚至不存在。 – user1512181 2012-07-09 14:23:49

回答

3
define("APP_PATH", dirname(__FILE__) . DIRECTORY_SEPARATOR); 
require_once(APP_PATH . 'registry' . DIRECTORY_SEPARATOR . 'registry.class.php'); 

DIRECTORY_SEPARATOR评估反斜杠在Windows系统中,并在* nix系统斜杠。这样,您的代码就可以在Windows和Linux环境下无需修改即可运行。

See the PHP manual on this constant及其朋友PATH_SEPARATOR。)

如果您还是有问题,很可能该文件并不在这条道路的存在,或者PHP没有读权限的文件。

+0

噢,这太棒了:) – 2012-07-09 14:25:39

+0

无法打开需要'E:\ tools \ EasyPHP \ www \ registry \ registry.class.php'(include_path =' 。; C:\ php \ pear') 虽然文件实际存在并且具有所有保存/读取/写入权限。 – user1512181 2012-07-09 14:26:33

1

你在你的dirname()字符串的结果看到了\和你的另一字符串你有/,我想你应该只有\

+0

我什么都没做,我只设置/分隔符,反斜杠已被系统添加到文件。 theres甚至没有办法改变它 – user1512181 2012-07-09 14:20:24

+0

在windows中,您使用\在PHP中的文件路径,当用PHP编写。所以你应该写:'define(“APP_PATH”,dirname(__ FILE __)。“\”); require_once(APP_PATH.'registry \ registry.class.php');' – 2012-07-09 14:23:05