如何修复PHP中的“无此类文件或目录错误”?

时间:2019-12-30 13:38:35

标签: php html

我在打开项目的侧面文件夹中的php文件时遇到问题。  我正在使用

include('$_SERVER[DOCUMENT_ROOT]/KungFu/php/hours.php')

错误消息是:

  

“警告:include(1):打开流失败:没有这样的文件或目录   在第48行的C:\ xampp \ htdocs \ KungFu \ index.php中”

还尝试了可能存在的所有变体-启用/禁用$_SERVER[DOCUMENT_ROOT]仍然无法正常工作。 index.php在主文件夹中,并且在子文件夹的同一文件夹中,我具有hours.php,但它没有在include语句中打开它。但是它是通过带有<a>的标签/KungFu/php/hours.php打开的,所以我真的不理解为什么。

2 个答案:

答案 0 :(得分:1)

您的代码有些错误。

首先,不能在单引号内使用变量。您可以在双引号中使用它们。但是,我建议使用串联。

还必须将DOCUMENT_ROOT放在单引号之间,因为它是数组(字符串)的键,而不是常量。如果您启用了错误报告功能,则应该看到类似以下的警告:

  

使用不确定的常量DOCUMENT_ROOT-假定为'DOCUMENT_ROOT'   (这将在将来的PHP版本中引发错误)……

正确的示例:

include($_SERVER['DOCUMENT_ROOT'] . '/KungFu/php/hours.php');

知道文件的路径为C:\xampp\htdocs\KungFu\php\hours.php,而当前文件的路径为C:\xampp\htdocs\KungFu\index.php,则可以使用dirname()代替$_SERVER超全局变量:

include(dirname(__FILE__) . '/php/hours.php');

答案 1 :(得分:0)

如果您的目录是这样的

  • 应用

    • index.php

    • 功夫

      • php

        • hours.php

然后像这样的简单包含文件,无需添加全局变量

include "kungfu/php/hours.php";