好吧,我有这个 dashboard.php 文件:
<?php
require_once ('../resources/config.php');
?>
我的文件树是这样的:
/home/name/public_html/
- admin/dashboard.php
- 资源/config.php
我真的不知道它到底出了什么问题,我在另一个 php 脚本的完全相同的目录中使用完全相同的 include,一切运行良好。
有什么想法吗?
编辑: 我注意到在某些情况下,从服务器上同一目录调用的文件的相对路径不同,现在我知道原因了。我使用 index.php
来控制 URI 请求并拥有更好的 URL,我有一个 switch
语句,它使用 include
来调用请求的文件,所以如果它包含一个也有 include/require 语句的脚本,路径就会改变。
我现在正在努力解决这个问题,但我是非常非常新手,所以您的任何建议都将非常有帮助。
非常感谢到目前为止回答问题的所有人!
最佳答案
我通常这样使用文件的真实路径:
require_once(realpath(dirname(__FILE__)) . '/../../general_controler/database_manager.php');
此示例来 self 的 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
关于php - require_once 无法打开流 : No such file or directory - even if relative path seems to be correct(? ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31733330/