3

我不知道为什么我总是有很多问题。无论如何,这是我想要的文件的路径

/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

4 回答 4

1

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

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

于 2012-10-27T21:21:11.700 回答
1

我在另一个问题中对此有详细的回答:

在php中找到一个4个目录的文件

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

于 2012-10-27T21:29:27.693 回答
0

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

于 2012-10-27T21:21:45.953 回答
0

使您的路径相对于最初请求的文件。因此,如果您点击 /var/www/vhosts/mysite.com/htdocs/index.php,其中包括 MyFile.php,您的路径将是“Classes/DBConnection.php”

于 2012-10-27T21:25:22.543 回答