我有以下目錄結構的網站:PHP require_once路徑
index.php
connections/database.php
contacts/details.php
inc/functions.php
的index.php文件,爲database.php和details.php頁面都需要的functions.php頁面。我在這些頁面中包含如下內容:
$path = dirname(__DIR__);
// looks like this: /Library/WebServer/Documents/clients/acme
require_once $path.'/inc/functions.php';
這在我的Mac開發服務器上運行良好。我只是將文件上傳到運行IIS/Windows 2008的生產服務器,所以我知道會有一些路徑問題。
我不得不改變代碼,包括functions.php文件到這一點:
$path = dirname(__DIR__);
// looks like this: C:\inetpub\wwwroot\client_sites\acme
require_once $path.'\inc\functions.php';
這是所有工作,到目前爲止,但我不知道是否有一個簡單的辦法,使動態的,所以我根據服務器環境,不必修改正確反斜槓或正斜槓的字符串?我會在某個時候忘記,或者客戶端可能會更換服務器,然後這會中斷,並且需要手動更改路徑。
有沒有辦法自動處理路徑,而不考慮服務器操作系統環境?
你可以只使用/在整個,它將被正確解釋在Windows機器 – Orangepill
同意@Orangepill - 正斜槓應適用於Windows和* nix系統。 – Cyclonecode
PHP會爲你自動翻譯目錄分隔符。只需使用'/',不用擔心。唯一不用擔心的是指的是不同的驅動器。 Windows需要'D:/','C:/'等等,而unix-ish系統並不關心那種事情。 –