我的客戶已經遷移了服務器,該服務器地址是一樣的,但內部的文件夾結構發生了變化,我與所需的服務器文件路徑如何獲取文件的物理路徑?
例如PHP函數工作,該網站地址是www.example.com/file.php和我的功能是使用這樣的路徑:
require_once('/var/www/file.php');
有沒有辦法找出來?
我的客戶已經遷移了服務器,該服務器地址是一樣的,但內部的文件夾結構發生了變化,我與所需的服務器文件路徑如何獲取文件的物理路徑?
例如PHP函數工作,該網站地址是www.example.com/file.php和我的功能是使用這樣的路徑:
require_once('/var/www/file.php');
有沒有辦法找出來?
由於這是在谷歌第一擊和接受的答案,根據問題的精神是不完整的,這裏是完整的答案。
__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
。
更詳細:它必須是類似'dirname(__ FILE__)。 '/ relative/path/to/file.php',或者(對於PHP5.3 +)'__DIR__。 '/ relative/path/to/file.php'' – KingCrunch
我應該輸出dirname(__ FILE__)的結果。 '/relative/path/to/file.php'還是放在那裏? – steps
如果您只希望目錄使用'__DIR__'。如果你想使用文件名的完整路徑使用'__FILE__'。 –