【问题标题】:Want to include a file from different files, that include a file想要包含来自不同文件的文件,这些文件包含一个文件
【发布时间】:2013-03-31 13:30:49
【问题描述】:

标题可能听起来有点奇怪,但假设我有文件 A,而 B。A 和 B 都有

include_once("includes/includes.php");

在 Includes.php 中有这一行:

include_once("admin/plugins/list.php");

这适用于与管理员(文件夹)处于同一级别的文件。 但是B,已经在Admin文件夹下,代码如下:

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

这行得通,只有在打开 admin 文件夹中的文件时出现错误,因为它在文件夹 admin 中找不到文件夹 admin。而且我知道我可以使用一些 if 语句删除管理员,但我有更多文件夹存在这个问题。

是的,我已经尝试过使用 $_SERVER['DOCUMENT_ROOT'] 和“/”,但这不起作用。

【问题讨论】:

  • 相对于父脚本所在文件夹的构建路径:require_once dirname(__FILE__) . '/../includes/includes.php';.

标签: php relative-path


【解决方案1】:

你总是可以定义一个常量,比如 define('SV_ROOT', 'path/to/yourroot');

然后使所有包含相对于它。

【讨论】:

    【解决方案2】:

    唯一始终与包含相同的是文档根目录。所以我会说将你的 docroot 打印到屏幕上,看看你得到了什么。

    可以肯定的是,您并没有延迟请求它(例如在您请求所需功能之后请求),并且您没有请求它加倍。

    可以肯定的是,你能发布错误,文档根输出和它应该根据你的路径。

    【讨论】:

    • 错误是:警告:include_once(/usr/local/apache/htdocs/admin/plugins/plugins.php)[function.include-once]:无法打开流:操作中不允许/home/a2017505/public_html/includes/includes.php 在第 51 行
    • *使用 $_SERVER['DOCUMENT_ROOT'],但我需要一段可以在更多服务器上运行的代码,因为我正在构建一个 CMS
    猜你喜欢
    • 1970-01-01
    • 2019-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多