2012-03-22 92 views
0

這就是我們鍵入絕對路徑: -絕對路徑如何動態改變?

echo $_SERVER['DOCUMENT_ROOT']; 

輸出如下: -

C:/xampp/htdocs 

目前我的文件夾命名「項目」的工作,因此,我的項目的根目錄是: -

echo $_SERVER['DOCUMENT_ROOT'].'/project'; 

輸出將被

C:/xampp/htdocs/project 

現在,如果我我的項目上傳到網絡服務器與文件夾的名字,說:「網站」我需要改變

echo $_SERVER['DOCUMENT_ROOT'].'/project'; 
------------------------------------------ 
to 
------------------------------------------ 
echo $_SERVER['DOCUMENT_ROOT'].'/website'; 
------------------------------------------ 
or if i upload it in root then 
------------------------------------------ 
echo $_SERVER['DOCUMENT_ROOT']; 

我需要存儲在不同的文件夾和目錄級別的文件。 ......有什麼辦法讓這件事變成動態的嗎?

我想盡量減少這個障礙,並隨時重命名可能會造成大量時間浪費。

一旦我使用/項目然後/網站,最後直接根...可能是任何伎倆,我們可以繞過這個障礙和種類的聲明或東西..所以,無論我們上傳我們只是改變一個名字在文件和它的完成....像這樣的東西。

回答

3

dirname(__FILE__) 

初始化它的根目錄,如您所願,如果你使用鏈接的目錄(原來的路徑將被使用),這是例如CI中一個令人失望這是行不通的

+1

但它將如何解決我的問題? – 2012-03-22 11:06:39

+0

那麼你使用它作爲項目的根文件夾,而不是web服務器(htdocs?)文件夾。 – 2012-03-22 11:12:09

+0

如果我在根上傳它呢? – 2012-03-22 11:17:04

0

你可以使用類似這樣的東西

$environments = array(
    'localhost' => 'development', 
    'example.com' => 'production', 
); 

$active_environment = 'development'; 

foreach($environments as $key => $value){ 

    if(stristr($_SERVER['SERVER_NAME'], $key)){ 
     $active_environment = $value; 
     break; 
    } 
} 

define('ENVIRONMENT', $active_environment); 

    function getRoot(){ 

     switch(ENVIRONMENT){ 
      case 'production' : return $_SERVER['DOCUMENT_ROOT'].'/website'; 
      case 'development' : 
      case default: return $_SERVER['DOCUMENT_ROOT'].'/project'; 

     } 
    } 
+0

嘿,謝謝你的指導,我已經編輯了一下我的問題,請重新考慮....謝謝 – 2012-03-22 11:05:29

+0

好吧,我們在項目的生命週期中使用這種方法機器 - localhost,dev ,qa,舞臺,製作。所有的配置設置都基於'ENVIRONMENT'的值。現在如果你只需要目錄,'dirname(__ FILE __)'方法是最好的。 – scibuff 2012-03-22 11:09:05

+0

但如何使用'dirname(__ FILE __)'? – 2012-03-22 11:10:12