【问题标题】:Warning: include_once(../settings/settings.php): failed to open stream - but the path is actually right?警告:include_once(../settings/settings.php): 无法打开流 - 但路径实际上是正确的吗?
【发布时间】:2023-03-04 18:05:01
【问题描述】:
Warning: include_once(../settings/settings.php): failed to open stream: No such file or directory in /Applications/MAMP/htdocs/Project/classes/user.class.php on line 2

Warning: include_once(): Failed opening '../settings/settings.php' for inclusion (include_path='.:/Applications/MAMP/bin/php/php7.2.1/lib/php') in /Applications/MAMP/htdocs/Snapshot/classes/user.class.php on line 2

但是文件位置实际上是对的吗?它甚至为我提供了该路径的自动路径填充建议(可视代码插件)!

为什么会发生这种情况与/或第二条警告线有关?

 

所以我试图将 settings.php 文件从 User.class.php 文件中包含以下代码。

include_once("../settings/settings.php");

../ -> 回到根目录

settings/ -> 进入设置文件夹

settings.php -> 应该找到所需的 .php 文件

【问题讨论】:

  • 如果 index.php 正在包含一个文件,并且包含另一个文件,等等它与 index.php 的相对文件,而不是包含的文件。试试:include_once("./settings/settings.php");

标签: php path include-path


【解决方案1】:

取决于你打电话给你的班级。更好的是像每个 PHP 框架一样使用配置文件来满足 require/include 路径。

【讨论】:

    【解决方案2】:

    替换

    include_once("../settings/settings.php");
    

    include_once(__DIR__ . "/../settings/settings.php");
    

    __DIR__ 将解析使用此常量的文件的绝对路径。您可以从中导航您的文件夹。

    【讨论】:

    • 谢谢你的工作,没有其他办法吗?
    • 如果你想使用相对路径,你需要将include_path设置成你期望的值。 set_include_path('/Applications/MAMP/htdocs/Project/'); 在入口点的顶部,然后尝试使用 include_once "settings/settings.php"。我建议不要这样做。相对 url 是不可预测的。
    【解决方案3】:

    使用文件的绝对路径。您可以使用 $_SERVER['DOCUMENT_ROOT'] 或创建一个常量变量 BASEPATH,您可以轻松地将根目录值设置为。

    include_once($_SERVER['DOCUMENT_ROOT']."/settings/settings.php");
    

    define('BASEPATH', "/Applications/MAMP/htdocs");
    include_once(BASEPATH."/settings/settings.php");
    

    【讨论】:

    • 警告:include_once(/Applications/MAMP/htdocs/settings/settings.php):无法打开流:/Applications/MAMP/htdocs/Snapshot/classes/User 中没有这样的文件或目录。第 2 行的 class.php 警告:include_once():无法打开“/Applications/MAMP/htdocs/settings/settings.php”以包含(include_path='.:/Applications/MAMP/bin/php/php7.2.1/lib /php') 在 /Applications/MAMP/htdocs/Snapshot/classes/User.class.php 第 2 行
    • 我尝试了您的编辑,但仍然给出了与@Federkun 他的帖子相同的错误,并且有效,无论如何谢谢!
    猜你喜欢
    • 2017-12-29
    • 2020-04-11
    • 2012-07-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多