2011-12-03 34 views
1

我在我的窗口框上安裝了wamp。一般來說,當我從網站下載一個網站時,我在www文件夾內爲網站名稱創建了一個文件夾。例如:c:\ wamp \ www \ mysite。一旦我有了這個文件夾,我就會複製所有的實時文件。問題是,所有的路徑然後被破壞,因爲我的本地文件夾沒有根。如何在PHP中聲明路徑以允許簡單的應用程序移動到無根的文件夾?

設置路徑的最佳方式是什麼?如果網站移動到未固定的文件夾,它會很容易地工作?

+0

除非您要更改站點的PHP代碼中的所有路徑邏輯,否則您將需要爲此找到apache解決方案。 –

回答

2

我使用一個文件(通常叫做config.php)跟蹤根文件夾。我的定義(常量)是這樣的:

define('BASE_DIR','/wherever/whenever/'); 
define('LIB_DIR', BASE_DIR . 'lib/'); 

然後當你需要包含一個文件

include LIB_DIR . 'aFile.php'; 

這將是你做的東西上了一個新的網站,或者如果你有時間來重構你的當前網站。

+0

然後你不必在每個PHP文件中包含配置文件?或者有沒有辦法不必這樣做? – Frankie

+0

@Frankie它將取決於您的網站設置。如果你動態地將頁面加載到index.php中,你需要在index.php的頂部只包含一次配置。如果用戶被重定向到單獨的頁面,那麼config.php將需要包含在每個人中。 – MattCan

1

我們使用$_SERVER['DOCUMENT_ROOT']來確定我們在文件系統中的位置,然後簡單地追加我們項目的文件夾名稱。這對我們來說非常合適。你應該總是使用一個configuration.php來定義在將項目從一個服務器/文件夾移動到另一個時可能會改變的基本路徑和URL。

2

創建一個包含文件,該文件具有根據任何根目錄設置的常量......然後在您的代碼中,使用您創建的常量來包含文件。

還要注意,當您使用目錄「斜線」,總是在不斷DIRECTORY_SEPARATOR,而不是使用構建硬編碼它,這將允許你從Windows去到Linux的無縫連接。

1

選項1.使用<base href=""/>tag

選項2.使用一個配置文件,如@MattCan表明

選項3.使用服務器環境變量,像@Bjorn表明

選項4。在你的apache上創建一個虛擬主機,你可以創建一個域來指定你的app文件夾在哪裏。 Apache Doc here

相關問題