Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP包括,使用文档根路径代码-但是I';我卡住了-_Php - Fatal编程技术网

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

PHP包括,使用文档根路径代码-但是I';我卡住了-,php,Php,我正在尝试使用php includes为我的站点进行菜单导航,但是有些页面现在驻留在文件夹中——当页面从不同的文件夹中导航时,我遇到了典型的坏链接问题 我认为我需要为我的php包含创建“路径”,所以我研究并从下面的一篇“how to article”中找到了这些漂亮/简单的代码片段,它只是没有给我足够的信息来了解如何使用它 (我对所有驻留在同一根级别的页面使用了php Include,很好,我丢失的是文件夹中的页面。) 请-如果有人能告诉我…下面的两个选项都没有响应,如下所示-我应该插入“loc

我正在尝试使用php includes为我的站点进行菜单导航,但是有些页面现在驻留在文件夹中——当页面从不同的文件夹中导航时,我遇到了典型的坏链接问题

我认为我需要为我的php包含创建“路径”,所以我研究并从下面的一篇“how to article”中找到了这些漂亮/简单的代码片段,它只是没有给我足够的信息来了解如何使用它

(我对所有驻留在同一根级别的页面使用了php Include,很好,我丢失的是文件夹中的页面。)

请-如果有人能告诉我…下面的两个选项都没有响应,如下所示-我应该插入“localhost”一词来代替“DOCUMENT_ROOT”吗?还是“index.php”?或者我错过了什么?我已经在页面上需要包含的body标签之间尝试了它们。(my navigation.php位于我的includes文件夹中。)

选项1:
--或者——选项2:
试试这个

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

问题在于您传递的是url而不是文件路径


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

PHP从提供的路径或包含路径中指定的目录中拾取包含文件。阅读

如果includes目录是包含网站的目录的子文件夹,则可以使用$\u SERVER['DOCUMENT\u ROOT']。但是,我要补充的是,将PHP包含目录放入文档根目录不是一个好的做法,或者至少我不建议这样做,除非您考虑了安全问题,因为它可能会无意中暴露数据库密码等内容

解决问题的一个快速方法是将include目录的路径放在$include\u path变量中,并使用该变量

e、 g


不正确:HTTP_HOST是URL,而不是文档根目录中的文件路径/includes/?如果是这样的话,那么您的任何一个解决方案都应该有效。请注意,文档根值在子目录中不会更改,因此应适用于所有文件。好问题-includes文件夹位于此站点的根目录中,但我想我刚刚意识到了我的问题-我的计算机根目录(在mamp服务器上)中有几个站点,因此我想我需要添加“elephant_mamp”文件夹到我的路径。我一直在限制我的思考特定于站点的路径,而不是特定于服务器的路径。因此,这就是我在原始问题中使用的代码——感谢@vogomatix提供的所有输入,以帮助我了解我的有限思考。但是,当我发布该站点时,我是否必须返回“使用此包含代码编辑我的每个页面--更改路径”--以匹配实际服务器(而不是我的个人计算机路径?)。这是我使用的…我不太确定大象的mamp目录在哪里,但我猜DOCUMENT_ROOT是其中的htdocs目录,因此您可以使用
$include_path=$\u server['DOCUMENT\u ROOT']./elephant\u mamp/includes'
<?php include($_SERVER['HTTP_HOST'] . '/includes/navigation.php'; ?> 
// 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