包括,要求和相对路径

时间:2012-10-27 21:18:56

标签: php relative-path require-once

我不确定为什么我总是遇到很多问题。无论如何,这是我想要的文件的路径

/var/www/vhosts/mysite.com/htdocs/Classes/DBConnection.php

这是具有require语句

的文件的路径
/var/www/vhosts/mysite.com/htdocs/Classes/Forecast/MyFile.php

这是MyFile.php中的require语句

require_once '../DBConnection.php';

我一直收到“无法打开流”错误。如果我放入绝对路径,它工作正常。有没有人在这看到问题?

4 个答案:

答案 0 :(得分:1)

如果/Classes/Forecast/MyFile.php中包含/index.php,则相对路径将来自索引文件。要解决此问题,请使用__DIR__。然后,require将与该文件相关。

require_once __DIR__.'/../DBConnection.php';

答案 1 :(得分:1)

我在另一个问题上有详细解答

finding a file in php that is 4 directories up

它解释了PHP中相对文件路径的注意事项。使用那里提到的魔术常量和服务器变量来克服相对路径问题。

答案 2 :(得分:0)

是的。该路径是相对于包含您的类文件MyFe.php的文件,而不是类文件本身。我假设MyFile.php不是真正的服务页面,而是包含或自动加载的类。

答案 3 :(得分:0)

使您的路径相对于最初请求的文件。所以,如果您正在使用包含MyFile.php的/var/www/vhosts/mysite.com/htdocs/index.php,那么您的路径将是“Classes / DBConnection.php”