2011-10-22 15 views
4

這就是我的文件結構。 [..]是文件夾。我如何在每一頁上調用它而不定義路徑

[public] 
[libs] 
[crontab] 
[logs] 
[sessions] 
[tmp] 

config.php 

該域設置爲公用文件夾作爲其根目錄。包括config.php文件在內的其他一切都在根目錄之外。該配置包含數據庫連接信息和其他必要的設置。

公用文件夾中的每個頁面我必須放置整個路徑,以便包含配置文件。問題是當我從本地機器移動到公共服務器時,我必須遍歷每個頁面並更改配置文件包含的路徑。有沒有更好的辦法?也許在php.ini中設置路徑或類似的東西?

感謝

回答

3

在特定情況下可以使用:

include("$_SERVER[DOCUMENT_ROOT]/../config.php"); 
# Note: special exception array syntax within double quotes. 

它解決的public目錄,但將其中一個級別移回../以到達docroot之外的配置文件。


但你也可以使用SetEnv.htaccess定義的場合另一$_SERVER環境變量。

+0

你可以寫我如何在htaccess中做到這一點?即時通訊對不起,我缺少一些htaccess知識,謝謝 –

+0

Google'SetEnv'。 – mario

0

你可以只使用常數您的路徑,一旦更改,並且定義每個路徑上不斷 - 包括文件

您還可以看看include路徑 http://php.net/manual/en/function.set-include-path.php

+0

它已經在config.php頁面中定義爲常量。但爲了在每個頁面上包含該配置文件,我無法使用常量。配置文件必須以某種方式在Apache中定義,但我不知道如何。我不能使用常量在頁面上沒有配置文件,否則它會拋出錯誤。 –

1

,我經常使用,包括相對於特定位置的文件在您的根目錄結構的技術是使用包括/需要是這樣的:

require_once(dirname(__FILE__) . '/path/to/include.php');

這樣,代碼庫遷移不需要只要文件保持相對於彼此的相同方式就可以改變任何硬鏈接或常量。

相關問題