2011-04-04 75 views
3

如何找到我的htdocs目錄。查找htdocs路徑,無論文件存儲在哪裏

當我執行以下命令:

echo dirname(__FILE__); 

我得到以下輸出:

/var/www/myexample.com/htdocs/required/css 

我想找到路徑,直到/ htdocs目錄,但我不想硬編碼事情

我知道我可以使用:

dirname(dirname(dirname(__FILE__))) 

但是,如果當前文件位於「css」目錄中,那將起作用。如果我將移動到「css」目錄內的其他目錄,那麼它將不起作用。

任何解決方案?

回答

6

如果你正在運行的Apache,在

$_SERVER["DOCUMENT_ROOT"] 

環境變量應該給你當前的文檔根目錄。請參閱手冊中的$_SERVER

+0

我打算說,直到我檢查了我的Windows服務器,發現它沒有設置。 – BugFinder 2011-04-04 09:38:30

+0

@BugFinder有趣。哪個服務器,Apache或IIS? – 2011-04-04 09:38:55

+0

它是IIS,但是,我確定我以前在IIS中看到過這種情況,也許它是PHP的舊版本 - 但它是使用Windows安裝程序安裝的,而不是由zipfile安裝的,所以DOCUMENT_ROOT正是我所在的位置思考,我的服務器說不! – BugFinder 2011-04-04 10:08:59

2

在大多數設置$_SERVER['DOCUMENT_ROOT']應該給你你想要的。

0

我用這個腳本找到它們都應該$ _SERVER ['document_root']不可用,包括htdocs。

<?php 
$scriptRelativeName = substr($_SERVER['SCRIPT_FILENAME'], strripos($_SERVER['SCRIPT_FILENAME'], $_SERVER['SCRIPT_NAME'])); //get relative name of script case sensitive from script_filename provided by filesystem by getting position of script_name in url and substracting the filesystem path 
$scriptRelativePath = substr($scriptRelativeName , 0, strrpos($scriptRelativeName, "/")); //get relative path by subtracting everything after the last slash in the relative name 
$rootFolder = str_ireplace($scriptRelativeName, "", $_SERVER['SCRIPT_FILENAME']); //subtract the scriptrelativename from script_filename to get the root folder 
echo "Relative Script Name: " . $scriptRelativeName . "<br>"; 
echo "Relative Script Path: " . $scriptRelativePath . "<br>"; 
echo "Htdocs/Root Folder Path: " . $rootFolder . "<br>"; 
?>