Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/258.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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包括不处理相对路径-DocumentRoot问题?妈妈?_Php_Apache_Server Side Includes - Fatal编程技术网

php包括不处理相对路径-DocumentRoot问题?妈妈?

php包括不处理相对路径-DocumentRoot问题?妈妈?,php,apache,server-side-includes,Php,Apache,Server Side Includes,一定有什么我忽略了,但我似乎无法使用相对路径让我的include按预期工作。在MAMP中,DocumentRoot在httpd.conf中的配置如下: # MAMP DOCUMENT_ROOT !! Don't remove this line !! DocumentRoot "/Applications/MAMP/projects/journalproject” <?php include('nav.php'); ?> <?php include('../includes

一定有什么我忽略了,但我似乎无法使用相对路径让我的include按预期工作。在MAMP中,DocumentRoot在httpd.conf中的配置如下:

# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>
如果我使用这样的路径,我会在上打开该站点,并且包含的工作很好:

# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>

但是,如果我将include文件放入文件夹中,则include不会显示在页面上:

<?php include('/includes/nav.php'); ?>

这是包含文件:/journalproject/includes/nav.php的路径

我在这里调用它:/journalproject/journals/index.php

如果我使用如下路径,我还可以让include工作:

# MAMP DOCUMENT_ROOT !! Don't remove this line !!
DocumentRoot "/Applications/MAMP/projects/journalproject”
<?php include('nav.php'); ?>
<?php include('../includes/nav.php'); ?>

我不确定当锚链接使用相对路径查找同一文件时,为什么需要指定包含的路径:

<a href="/includes/nav.php">Find nav include</a>


我不知道接下来该怎么办。如果有任何帮助,我们将不胜感激。

我认为以下内容不起作用,因为它被视为一个绝对路径,因为它以“/”开头,告诉PHP在Unix操作系统中从文本“/”目录中查看:

尝试:

您可以指定与include路径相关的文件,而不必知道调用include/require的特定.php文件的位置:


设置包含路径(get\u include\u path().path\u SEPARATOR.$\u SERVER['DOCUMENT\u ROOT'])

相对于您的文档根目录(您的脚本可能从其中运行,或者设置了包含路径)。感谢您的帮助。我尝试了但没有成功,即使是在根文件夹中的文件上。我认为这是我的一个误解,Apache的文档根也会指定PHP的路径。我尝试了这个方法,效果很好:很高兴你取得了一些成功。您还可以在PHP中指定一个包含路径,这些路径将搜索您的包含/要求。通过这种方式,您可以指定与包含路径相关的文件,而无需知道调用包含/要求的特定.php文件的位置:即
set\u include\u path(get\u include\u path().path\u SEPARATOR.$\u SERVER['DOCUMENT\u ROOT'])