Require_once路径不能定位文件


require_once path can't locate file?

下面是我的文件夹结构的例子:

source files/
    controller/
        ctrl_showData.php
    model/
        Database.class.php

假设它现在在控制器目录中,并且在ctrl_showData.php中,我想需要Database.class.php,所以我尝试:

require_once(dirname(__FILE__) .'/../model/Database.class.php');

但是当我调试时,程序在执行上面的语句时停止,我猜它找不到文件。我已经看过类似的问题并尝试了它们的解决方案,但都不起作用。有人能帮忙吗?谢谢!以下是回显结果:

/controller/../model/Database.class.php

显然,它不去父目录,这是源文件/,然后去模型/,但不知道为什么?

感谢错误信息的建议,错误信息是:

Warning: require_once(config/config.php): failed to open stream: No such file or directory in /model/Database.class.php

因为我还需要数据库文件中的config.php,其路径不正确。我没有想到这一点,谢谢你的帮助!

试试这个:

require_once(realpath(dirname(__FILE__) . '/..') . '/model/Database.class.php');

您可以尝试使用:

include('./model/Database.class.php')

您可以使用一个相对路径,所以使用这个(下面)应该就可以了:

require_once('../model/Database.class.php');

尝试在realpath() http://us.php.net/manual/en/function.realpath.php中包装该调用

如果你的路径没有正确解析,它将返回null,并且它会清理你在中间的相对路径混乱。

错误日志中的错误是什么?你会收到文件找不到的提示吗?你会得到一个错误吗?

使用:

error_reporting E_ALL
ini_set('display_errors', 1);

然后看看错误是什么。如果您的错误确实是关于包含丢失的文件,请检查路径是否正确,还要检查包含路径是否正确。您可能错误地删除了include_path指令中的".",或者您的CMS可以这样做,如果它想限制您使用他们的自动加载器。

另一个想法是退出('BLA')在你的文件,并再次调用你的页面,看看是否出现BLA,如果它出现,这意味着你的文件被包括,但有错误,这就是为什么你停滞