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

时间:2014-05-14 08:47:07

标签: php

我正在尝试使用php包含我的网站的菜单导航,但有些页面现在位于文件夹中 - 当页面从各种文件夹中导航时,我遇到了典型的错误链接问题。

我以为我需要为我的php包含创建“路径”,所以我研究并从“如何文章”中找到这些好/简单的代码片段,它只是没有给我足够的信息来形象它如何使用它。

(我已经使用php包含所有位于同一根级别的页面,这是我丢失的文件夹中的页面。)

请 - 如果有人可以启发我......以下两个选项都没有响应,如下所示 - 我是否应该插入'localhost'这个词来代替'DOCUMENT_ROOT'?还是'index.php'?或者我错过了什么?我已经在需要include的页面上的body标签之间尝试了它们。 (我的navigation.php在我的包含文件夹中。)

option1:

<?php 
$path = $_SERVER['DOCUMENT_ROOT'];
$path .= "/includes/navigation.php";
include_once($path);
?>

-- OR-- option2:

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

3 个答案:

答案 0 :(得分:0)

PHP选择包括从提供的路径或包含路径中指定的目录中的文件。阅读the manual for more info

如果包含目录是包含您网站的目录的子文件夹,则您对$ _SERVER ['DOCUMENT_ROOT']的使用将起作用。但是我要补充一点,将PHP include目录放入DOCUMENT_ROOT目录并不是一个好习惯,或者至少我不建议这样做,除非你考虑过安全问题,因为它可能会无意中暴露出数据库密码等等。 / p>

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

e.g。

// 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

答案 1 :(得分:-1)

试试这个

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

答案 2 :(得分:-1)

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

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