1

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

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

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

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

4

2 回答 2

0

大多数服务器不允许包含 http 包装器。您可以使用文档根目录执行此操作:

$_SERVER['DOCUMENT_ROOT']

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

于 2013-06-01T22:19:50.493 回答
-1

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

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

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

于 2013-06-01T22:23:36.430 回答