下面是我的文件夹结构的例子:
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,如果它出现,这意味着你的文件被包括,但有错误,这就是为什么你停滞