我正在试图弄清楚如何让我的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.php
或lib.php
)而不是header.php
。
解决方案是简单地提供包含的完整URL还是有另一种方法来执行此操作?我可以为任何包含的php文件做URL,它会起作用吗?
答案 0 :(得分:0)
大多数服务器不允许在include中使用http包装器。您可以使用文档根目录:
$_SERVER['DOCUMENT_ROOT']
您可以将它放在var中,并将其与每个include一起使用。 (或定义它)
答案 1 :(得分:-1)
一种方法:
include $_SERVER['DOCUMENT_ROOT'].$pathToYourIncludeFileOnTheServer;
另一个是在php.ini中设置php include_path。如果你在include_path中指定的目录中包含一个文件php,那么如果一个文件与include匹配,那么就选择该文件。
直接通过http://www.server.com/include.php包含通常是一个问题,因为如果您使用免费的虚拟主机或类似的东西,有时会在php.ini中禁用allow_url_include。