我正在使用PHP包含我的标题/导航,但有些页面无法找到该文件。我正在使用根级链接
<?php include("/includes/masthead.php"); ?>
但根文件夹之外的页面未找到标头文件。例如:
index.php找到并处理masthead.php就好了; 采用/ adoptadog / php会返回错误,说文件不存在。
这是因为PHP不像HTML那样处理链接,所以我的根相对链接不是由php include函数解释的吗?
我希望能够在我的include语句中使用根相对链接,以便该语句可以进入Expression Web模板。无论页面的位置如何,模板似乎都在每个页面中写入相同的地址。也许它没有像在HTML中那样看到PHP标签中的链接 - 我不知道。
我希望这很清楚。有什么帮助吗?
答案 0 :(得分: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';
答案 1 :(得分:0)
尝试将其放在脚本的顶部:
set_include_path(get_include_path() . PATH_SEPARATOR . $_SERVER['DOCUMENT_ROOT']);
或者转到php.ini文件并更新include_path
指令以始终搜索您的webroot目录。