这是我的文件夹结构示例:
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,路径不正确。我没有想到这一点,谢谢你的帮助!
答案 0 :(得分:3)
试试这个:
require_once(realpath(dirname(__FILE__) . '/..') . '/model/Database.class.php');
答案 1 :(得分:1)
您可以尝试使用:
include('./model/Database.class.php')
答案 2 :(得分:0)
您可以使用相对路径,因此使用此(下方)应该正常工作:
require_once('../model/Database.class.php');
答案 3 :(得分:0)
尝试在realpath()http://us.php.net/manual/en/function.realpath.php
中包装该调用如果你的路径没有正确解析,它将返回null,并清除你在中间的相对路径混乱。
答案 4 :(得分:0)
错误日志中的错误是什么?你得到的东西说文件找不到?你有错误吗?
使用:
error_reporting E_ALL
ini_set('display_errors', 1);
然后看看错误是什么。如果您的错误确实是包含丢失的文件,请检查路径是否正确,同时检查您的包含路径是否正确。您可以通过错误删除“。”在include_path指令中,如果您想限制使用自动加载器,那么CMS就可以这样做。
另一个想法是在您的文件中退出('BLA')并再次调用您的页面以查看BLA是否出现,如果它出现,则表示您的文件已包含在内但有错误,这就是您停滞的原因。