PHP Include,使用文档根路径代码-但我卡住了-


PHP Include, using document root path code - but I'm stuck-

我试图使用php包含我的菜单导航为我的网站,但有些页面现在驻留在文件夹内-我有坏链接的典型问题,当页面从各种文件夹内导航。

我认为我需要为我的php包含创建"路径",所以我研究并找到了这些漂亮/简单的代码片段下面从"如何文章",它只是没有给我足够的信息来弄清楚如何使用它。

(我已经使用php包含所有驻留在同一根级别的页面很好,这是文件夹内的页面,我迷路了。)

请-如果有人能启发我…下面的两个选项都没有响应,因为它如下所示-我应该插入"localhost"这个词来代替"DOCUMENT_ROOT"吗?或"index . php"?或者我错过了什么?我在需要包含的页面上的正文标签之间尝试了它们中的每一个。(我的navigation.php在我的includes文件夹中)

option1:
<?php 
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/includes/navigation.php";
include_once($path);
?>
-- OR-- option2:
<?php include($_SERVER['DOCUMENT_ROOT'] . '/includes/navigation.php'; ?> 

PHP从提供的路径或包含路径中指定的目录中拾取包含文件。阅读手册获取更多信息

你使用$_SERVER['DOCUMENT_ROOT']将工作,如果包含目录是包含你的网站目录的子文件夹。然而,我要补充的是,将PHP包含目录放入DOCUMENT_ROOT目录并不是一种好做法,或者至少我不建议这样做,除非您考虑到安全问题,因为它可能会无意中暴露诸如数据库密码等内容。

解决这个问题的一个快速方法是将包含目录的路径放在$include_path变量中,并使用

// don't forget trailing directory separator :-)
$include_path = '/Put/the/full/path/here/'; 
include( $include_path . 'navigation.php' ); // also works for include_once, require etc

try this

<?php include($_SERVER['HTTP_HOST'] . '/includes/navigation.php'; ?> 

问题是你传递的是url而不是文件路径。

您需要传递文件路径,如C:'www'something'filename