2015-09-26 116 views
0

我運行這段代碼讀取(Apache服務器)目錄:獲取服務器根目錄

$mydir = '/media/video/'; 

$root_dir = $_SERVER["DOCUMENT_ROOT"]; 

if(strpos($_SERVER['HTTP_HOST'], 'localhost') === false){ 
    $dir = $root_dir . $mydir; 
}else{ 
    $dir = $mydir; 
} 

近來有一些服務器配置更改,現在它返回:

/home2/interact/public_html 

是否有更可靠的方法來始終獲取根路徑?

我需要一個public_html路徑。

+0

測試'目錄名(__FILE__)' –

+0

現在我越來越:「家/交互/的public_html/TST/OP」。 op是我的工作目錄。我怎麼知道'/ home2/interact/public_html'實際上是在這種情況下的根? – Toniq

+0

'DOCUMENT_ROOT'爲了更好地提取您所做的方式,還有另一種選擇即。解析apache配置文件,這裏提到(http://www.cyberciti.biz/faq/howto-find-unix-linux-apache-documentroot/)這可能不是個好主意,因爲有可能有人修改過配置但服務器尚未加載它,在這種情況下,它會導致錯誤的價值。 – akm

回答

0

//在'/'斜槓字符處拆分url路徑並將結果保存到$ urlParts(array)中。檢查$ urlParts數組是否包含public_html。這意味着/ home2/interact/public_html是root。

$ dirPath = dirname(FILE);

$ urlParts = explode('/',$ dirPath);

如果(in_array( '的public_html',$ urlParts)){

//do something 

}