【问题标题】:require_once failed to open stream: No such file or directory - even if relative path seems to be correct(?)require_once 无法打开流:没有这样的文件或目录 - 即使相对路径似乎是正确的(?)
【发布时间】:2015-10-22 08:59:51
【问题描述】:

嗯,我有这个dashboard.php文件:

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

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

/home/name/public_html/

  • admin/dashboard.php
  • 资源/config.php

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

有什么想法吗?

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

我现在正在尝试解决这个问题,但我是初学者,所以您的任何建议都会非常有帮助。

非常感谢到目前为止回答的所有人!

【问题讨论】:

  • ls -s 显示您的文件权限。
  • 如果你把var_dump(realpath('../resources/config.php'));exit;放在你的include之前,你会得到什么?
  • 不确定我是否完全理解您从哪里调用它,如果您尝试./resources/config.php 是否有效?此外,您真的应该只使用require() 而不是require_once(),它更有效。如果您正确编写代码,require_once() 几乎没有充分的理由,它只会减慢速度。
  • @iam-decoder 它说bool(false),实际上如果我设置到另一个目录的路径,realpath 只会给我空结果,但我试图回显realpath('config.php'); 它指向根我网站的目录 - 就像使用 &lt;a href="/config.php",所以我摆脱了 '../' 作为我的要求,现在它可以工作了,但是......我真的不明白为什么......
  • @Kyle 我把它从 rootdir/admin/dashboard.php 调用到 rootdir/resources/config.php 嗯,这实际上是我的第一个项目,所以我会记住你的建议。 :)

标签: php file path directory warnings


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-07-04
    • 2017-06-16
    • 1970-01-01
    • 2020-12-24
    • 2011-05-27
    • 1970-01-01
    • 2015-02-25
    • 2018-01-21
    • 1970-01-01
    相关资源
    最近更新 更多