【问题标题】:PHP include directoriesPHP 包含目录
【发布时间】:2013-06-01 22:14:49
【问题描述】:

我正在尝试弄清楚如何让我的 php 包含在不同目录中的文件中正常工作。

例如,我的布局有一个 header.php,它包含在 index.php 中 - 它位于 root/ 目录中。然后,我有一个位于root/pages/etc/lib.php 的页面 - 它还需要使用header.php。现在,显然我可以为索引做一个include "header.php",为lib.php 文件做一个include "../../header.php",但后来我遇到了另一个问题......

我的header.php 也有一个它自己的 php 包含,并且相对路径是相对于原始页面(index.phplib.php)而不是 header.php

解决方案是简单地提供包含的完整 URL,还是有其他方法可以做到这一点?我可以为任何包含的 php 文件做 URL 吗?

【问题讨论】:

  • 你应该有一个非相对的常量变量。然后让你所有的包含都以这个变量为前缀。

标签: php url include directory


【解决方案1】:

大多数服务器不允许在包含中包含 http 包装器。您可以使用文档根目录:

$_SERVER['DOCUMENT_ROOT']

您可以将它放在一个 var 中,并在每个包含中使用它。 (或者定义)

【讨论】:

    【解决方案2】:

    一种方法:
    include $_SERVER['DOCUMENT_ROOT'].$pathToYourIncludeFileOnTheServer;

    另一个是在php.ini中设置php include_path。如果包含文件,php 会在 include_path 中指定的目录中查找文件是否与包含匹配,如果匹配则选择该文件。

    直接通过http://www.server.com/include.php 包含通常是一个问题,因为如果您使用免费的虚拟主机或类似的东西,有时会在 php.ini 中禁用 allow_url_include。

    【讨论】:

      猜你喜欢
      • 2011-12-26
      • 1970-01-01
      • 1970-01-01
      • 2017-07-12
      • 2015-01-31
      • 2014-12-16
      • 1970-01-01
      • 2012-07-10
      • 2023-03-20
      相关资源
      最近更新 更多