2012-02-10 67 views
0

我正在用PHP編寫安裝腳本,我的應用程序的一部分可能安裝在公用文件夾上一級的文件夾中。通常,公共文件夾被稱爲「public_html」,但並非總是如此。有沒有一些簡單的方法來找到使用PHP的根公用文件夾的名稱或路徑?如何找到使用PHP的公用文件夾?

+2

你怎麼知道你的腳本將始終可以訪問該文件夾,如果它甚至存在?無論如何,只需使用'../'。 – Brad 2012-02-10 03:35:09

+0

對於權限是正確的,但我想我會分開處理。 ../可能無法正常工作,當我的安裝腳本在子域上運行時,子域通常具有類似於public_html/subdomain /的站點根目錄。使用../會把我帶到public_html,但我需要上一層。 – igorilla 2012-02-10 05:15:51

回答

3

嘗試$_SERVER['DOCUMENT_ROOT']。 (documentation

如果你想獲得它上面的目錄,你可以使用dirname

Brad確實有一點,雖然;您的腳本可能無法訪問該目錄。

+0

我想他想要doc根目錄上方的文件夾。 – Brad 2012-02-10 03:35:36

+0

爲了確保你可以寫入web根目錄上的文件夾......'$ levelUp = dirname($ _ SERVER ['DOCUMENT_ROOT']);如果(is_writable($的LevelUp)){...}' – rdlowrey 2012-02-10 03:51:35

+0

當網站上的子域,$ _ SERVER [ 'DOCUMENT_ROOT']讓我像/和home1 /用戶/的public_html /子域。而public_html可以在不同的服務器上被調用。 – igorilla 2012-02-10 05:19:31

0
  1. $_SERVER['DOCUMENT_ROOT']將提供完整的路徑可達public_html,你可以用斜槓爆炸「/」,並獲得爆炸數組的最後一個索引。
  2. 如果您不知道實際的文件名,您也可以使用帶參數「../」的realpath。這將返回您完整的父路徑public_html

希望這兩個中的一個會爲你工作:)

+0

謝謝,但我不知道我的安裝腳本從哪裏運行。它可能是public_html/install.php,但它也可能來自public_html/subfolder/install.php。對於這兩種情況$ _SERVER ['DOCUMENT_ROOT']會給我不同的結果。而且我無法在任何路徑中查找「public_html」,因爲此目錄可能被稱爲別的東西,比如「www」。 – igorilla 2012-02-10 05:27:50