在 PHP 中包含絕對路徑和相對路徑

Olorunfemi Akinlua 2023年1月30日 2022年7月12日
  1. PHP 中的絕對路徑和相對路徑
  2. 使用 include()dirname() 在 PHP 中包含絕對和相對路徑
在 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 Akinlua avatar Olorunfemi Akinlua avatar

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