require_once无法打开流:没有这样的文件或目录 - 即使相对路径似乎是正确的(?)

时间:2015-07-30 20:22:48

标签: php file path directory warnings

好吧,我有这个dashboard.php文件:

<?php
require_once ('../resources/config.php');
?>

我的文件树看起来像这样:

/家庭/名称/的public_html /

  • 管理员/ dashboard.php
  • 资源/ config.php中

我真的不知道它到底有什么问题,我在另一个php脚本的完全相同的目录中使用完全相同的包含,并且一切运行良好。

有什么想法吗?

编辑:我注意到在某些情况下,从服务器上的同一目录调用的文件的相对路径是不同的,现在我知道原因了。我使用index.php来控制URI请求并拥有更好的URL,我在那里使用switch语句使用include来调用所请求的文件,所以如果它包含一个也包含一个include /的脚本require语句,路径改变。

我现在正试图修复它,但我非常非常初学者,所以你的任何建议都会非常有帮助。

非常感谢你们所有人,到目前为止回答了他们!

1 个答案:

答案 0 :(得分:0)

我通常使用文件的真实路径:

require_once(realpath(dirname(__FILE__)) . '/../../general_controler/database_manager.php');

此示例来自我的 DataImporter 抽象类,使用 DatabaseManager 抽象类。

在此示例中,我的树结构如下所示:

(主域名)/PC_administration_interface/Controler/data_importer.php

(主域名)/general_controler/database_manager.php

在你的情况下,它会是这样的:

require_once (realpath(dirname(__FILE__)) . '/../resources/config.php');

否则,以“/”开始路径以从根开始。在Xampp中,htdocs是站点的根文件夹,在我的例子中它可能是这样的(因为我的general_controler文件夹直接在根目录中):

require_once('/general_controler/database_manager.php')

我想你会这样(假设home是根目录的子文件夹):

require_once('/home/name/public_html/resources/config.php');

第一种解决方案可能是最好的......无论如何,你应该试一试。

我希望它能解决你的问题,

来自蒙特利尔的Jonathan Parent-Lévesque