2012-02-09 109 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