在 PHP 中包含絕對路徑和相對路徑
無論是在伺服器上還是在本地 PC 上,執行 PHP 程式的路徑都會有所不同並且很重要。如果你在錯誤的目錄中執行,那麼瞭解如何使用這兩種型別的路徑(相對路徑和絕對路徑)非常重要。
儘管兩者都很重要,但我們可能經常使用絕對路徑,尤其是在整個 PHP 應用程式的上下文中,而不是絕對路徑。
本文將解釋如何在 PHP 中使用或包含絕對路徑和相對路徑。
PHP 中的絕對路徑和相對路徑
無論是在 PHP 應用程式中還是在我們的本地計算機中,絕對路徑都是相對於系統根目錄的檔案或目錄位置。但是,相對路徑指向檔案系統中相對於當前目錄的特定位置。
這是 Unix 或 Linux 上的絕對路徑:
/home/user/devs
在 Windows PC 上,絕對路徑如下所示:
C:\AMD\Chipset_Software
但是,Linux 路徑系統通常用於大多數 PHP 伺服器。
然而,相對路徑可能看起來像這樣:
../devs
上面的程式碼片段將代表 devs
目錄的父目錄,你可以在 Windows 上使用相同的 ..
。假設你在 C:\Users\HP\Documents
目錄中;你可以通過以下命令轉到 HP 的子目錄下載目錄:
cd ..\Downloads
使用 include()
和 dirname()
在 PHP 中包含絕對和相對路徑
要訪問絕對路徑和相對路徑,我們需要 dirname()
函式和一個名為 __FILE__
的神奇常量。神奇的常量 __FILE__
返回正在執行的 PHP 檔案的完整路徑和名稱。
dirname()
函式返回父目錄的路徑。當我們一起使用 __FILE__
和 dirname()
函式時,我們可以獲得我們正在處理的檔案的絕對根路徑,假設我們通過 include
關鍵字與之互動的檔案位於同一目錄中.
include(dirname(__FILE__).'/functions.php');
dirname(__FILE__)
的結果是:
/home/runner/ScholarlyOvalFirewall
但是,假設我們與之互動的 PHP 檔案位於當前工作目錄的父目錄中。在這種情況下,我們可以使用 __DIR__
常量,因為它返回當前檔案的目錄,不帶斜槓。
include(dirname(__DIR__).'/functions.php');
dirname(__FILE__)
的結果是:
/home/runner/
比如說,我們打算只使用相對路徑,我們可以通過建立以下函式來實現:
function relativepath($to){
$a=explode("/",dirname(__FILE__));
$index= array_search("$to",$a);
$str="";
for ($i = 0; $i < count($a)-$index-2; $i++) {
$str.= "../";
}
return $str;
}
$st = relativepath('main.php');
echo $st;
該函式的引數是 PHP 檔案的名稱,它的工作原理是通過 /
符號將絕對路徑字串分解為一個陣列並搜尋指定的 PHP 檔案。之後,../
系列被附加到 $str
變數中,為我們提供到根的相對路徑。
此外,我們可以使用 dirname()
函式、define()
函式和任何神奇的常量 __DIR__
和 __FILE__
來定義根路徑,具體取決於你的需要。
define('ROOT_PATH', dirname(__DIR__) . '/');
ROOT_PATH
現在是 /home/runner
。
Olorunfemi is a lover of technology and computers. In addition, I write technology and coding content for developers and hobbyists. When not working, I learn to design, among other things.
LinkedIn