2012-05-29 139 views
0

我的客戶已經遷移了服務器,該服務器地址是一樣的,但內部的文件夾結構發生了變化,我與所需的服務器文件路徑如何獲取文件的物理路徑?

例如PHP函數工作,該網站地址是www.example.com/file.php和我的功能是使用這樣的路徑:

require_once('/var/www/file.php'); 

有沒有辦法找出來?

回答

2
+1

更詳細:它必須是類似'dirname(__ FILE__)。 '/ relative/path/to/file.php',或者(對於PHP5.3 +)'__DIR__。 '/ relative/path/to/file.php'' – KingCrunch

+0

我應該輸出dirname(__ FILE__)的結果。 '/relative/path/to/file.php'還是放在那裏? – steps

+2

如果您只希望目錄使用'__DIR__'。如果你想使用文件名的完整路徑使用'__FILE__'。 –

5

由於這是在谷歌第一擊和接受的答案,根據問題的精神是不完整的,這裏是完整的答案。


__FILE__神奇不變像約翰·孔德說,但它只是給你正在執行當前的PHP文件的物理路徑。

__DIR__獲取當前執行文件的目錄。或者,您也可以使用dirname(__FILE__)

$_SERVER['DOCUMENT_ROOT']獲取到web根目錄的物理路徑,例如, /var/www/example.com/httpdocs

例如,讓我們說你的網站有以下文件夾結構:

|-foo 
| |-bar 
|  |-executing.php 
|-biz 
    |-required.php 

比方說executing.php是當前正在執行的文件和要包括required.php。你有幾個選擇。

//relative to the file 
require __DIR__ . "/../../biz/required.php"; 
require dirname(__FILE__) . "/../../biz/required.php"; 

//relative to the web root 
require $_SERVER['DOCUMENT_ROOT'] . "/biz/required.php"; 

當然,在這些例子中,你也可以使用require_once而不是require