這工作PHP相對路徑如ASP
<?php include("inc/c.php")?>
但是過去的這個文件夾中,這不起作用
<?php include("../inc/c.php")?>
我要做
<?php include("/var/web/public_html/etc/inc/c.php")?>
我知道ASP您可以啓用虛擬路徑和目錄。這與PHP相同嗎?
這工作PHP相對路徑如ASP
<?php include("inc/c.php")?>
但是過去的這個文件夾中,這不起作用
<?php include("../inc/c.php")?>
我要做
<?php include("/var/web/public_html/etc/inc/c.php")?>
我知道ASP您可以啓用虛擬路徑和目錄。這與PHP相同嗎?
如果您包含文件夾中的文件,則所有包含都與包含程序的文件有關。
因此,相同的代碼應在文件中的子文件夾的工作:
<?php include("inc/c.php")?>
您可以將目錄添加到PHP的include_path
目錄。當您指定一個相對文件名時,PHP將查找該文件相對於include_path
中指定的所有目錄。請參閱http://php.net/manual/en/function.set-include-path.php#example-488。
使用
dirname(__file__)
這將返回當前目錄的路徑。
您可以使用realpath(dirname(__FILE__))
的文件包括相對於當前文件:
include(realpath(dirname(__FILE__).'/../inc/c.php'));
但是過去的這個文件夾中,這不起作用
不,它確實工作。
我知道在ASP中可以啓用虛擬路徑和目錄。這與PHP相同嗎?
是的。但是整個虛擬路徑與你的情況無關。
這不是PHP的問題。這是開發者使用錯誤路徑的問題。
爲了讓您的代碼萬無一失,請始終使用絕對路徑。建立不是從當前位置,而是從站點根目錄的路徑。所以,您的網站上的任何網頁都將保持不變。
最普遍的方式是
include $_SERVER['DOCUMENT_ROOT']."/etc/inc/c.php";
我居然沒下來紀念這個。儘管你總是如此傲慢,但你是正確的,這個錯誤是代碼中的問題 - 路徑存在,但其他PHP阻止它。 – TheBlackBenzKid 2012-02-09 14:49:23