0

我正在为我的标题/导航使用 PHP 包含,但有些页面无法找到该文件。我正在使用根级链接

<?php include("/includes/masthead.php"); ?>

但是根文件夹之外的页面没有找到标头文件。例如:

index.php 可以很好地定位和处理 masthead.php;采用/采用/采用/php 返回一个错误,指出该文件不存在。

这是因为 PHP 不像 HTML 那样处理链接,所以我的根相对链接没有被 php include 函数解释?

我希望能够在我的 include 语句中使用根相对链接,以便该语句可以进入 Expression Web 模板。无论页面的位置如何,模板似乎在每个页面中都写入了相同的地址。也许它不会像在 HTML 中那样在 PHP 标记中看到链接——我不知道。

我希望这很清楚。有什么帮助吗?

4

2 回答 2

2

您可以使用文档根作为锚点:

include $_SERVER['DOCUMENT_ROOT'] . '/includes/masthead.php';

如果您包含的文件在文档根目录之外的一级,您只需移动它:

include dirname($_SERVER['DOCUMENT_ROOT']) . '/includes/masthead.php';

如果您有一个脚本可以由位于文档根目录本身的所有页面加载,则可以使用常量:

define('PROJECTDIR', dirname(__FILE__));

要包括桅杆头:

include PROJECTDIR . '/includes/masthead.php';
于 2013-09-15T02:15:12.640 回答
0

尝试将其放在脚本的顶部:

set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT']);

或者转到您的 php.ini 文件并更新include_path指令以始终搜索您的 webroot 目录。

于 2013-09-15T02:28:11.683 回答