PHP相对路径,如ASP

时间:2012-02-09 12:16:05

标签: php include relative-path

这有效

<?php include("inc/c.php")?>

但是在过去的文件夹中,这不起作用

<?php include("../inc/c.php")?>

我必须做

<?php include("/var/web/public_html/etc/inc/c.php")?>

我知道在ASP中你可以启用虚拟路径和目录。这和PHP一样吗?

5 个答案:

答案 0 :(得分:2)

如果您要包含文件夹中的文件,则所有包含都与包含者的文件相关。

因此,相同的代码应该适用于子文件夹中的文件:

<?php include("inc/c.php")?>

答案 1 :(得分:1)

您可以使用realpath(dirname(__FILE__))相对于当前文件包含文件:

include(realpath(dirname(__FILE__).'/../inc/c.php')); 

答案 2 :(得分:0)

您可以将目录添加到PHP的include_path目录中。指定相对文件名时,PHP将查找相对于include_path中指定的所有目录的文件。

看看http://php.net/manual/en/function.set-include-path.php#example-488

答案 3 :(得分:0)

使用

dirname(__file__)

它将返回当前目录的路径。

答案 4 :(得分:-2)

  

但是在过去的文件夹中,这不起作用

不, 工作。

  

我知道在ASP中你可以启用虚拟路径和目录。这和PHP一样吗?

是。但是整个虚拟路径的事情与你的情况无关。

这不是PHP问题。这是开发人员使用错误路径的问题。

要使代码万无一失,请始终使用绝对路径。不是从当前位置而是从站点根目录构建路径。因此,您网站上的任何页面都会如此 最通用的方式是

include $_SERVER['DOCUMENT_ROOT']."/etc/inc/c.php";