2012-02-09 74 views
0

这工作PHP相对路径如ASP

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

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

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

我要做

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

我知道ASP您可以启用虚拟路径和目录。这与PHP相同吗?

回答

2

如果您包含文件夹中的文件,则所有包含都与包含程序的文件有关。

因此,相同的代码应在文件中的子文件夹的工作:

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

使用

dirname(__file__) 

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

1

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

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

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

不,它确实工作。

我知道在ASP中可以启用虚拟路径和目录。这与PHP相同吗?

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

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

为了让您的代码万无一失,请始终使用绝对路径。建立不是从当前位置,而是从站点根目录的路径。所以,您的网站上的任何网页都将保持不变。
最普遍的方式是

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

我居然没下来纪念这个。尽管你总是如此傲慢,但你是正确的,这个错误是代码中的问题 - 路径存在,但其他PHP阻止它。 – TheBlackBenzKid 2012-02-09 14:49:23