一、dirname函數的定義
dirname函數是PHP中的一個內置函數,其主要功能是獲取一個文件或者目錄所在的路徑,不包括文件或者目錄本身的名稱。
二、dirname函數的基本用法
dirname函數的語法比較簡單,僅有一個參數,即要獲取路徑的文件或目錄名字符串。該參數必須是一個字符串類型,如果參數不是一個字符串,dirname會返回FALSE併產生一個E_WARNING警告。函數返回的是一個字符串類型的目錄名稱。下面是一個簡單的示例程序:
$path = "/dir/file.txt"; $dirpath = dirname($path); echo $dirpath; //輸出 "/dir"
在上面的示例程序中,我們指定了一個路徑字符串”/dir/file.txt”,並將其傳遞給 dirname 函數。該函數返回了路徑的目錄名”/dir”並將其賦值給$dirpath變量,程序最終輸出了$dirpath變量的值。
三、dirname函數的特殊用法
1、獲取上級目錄
dirname函數經常被用來獲取上級目錄的路徑。比如,我們有一個文件”/dir1/dir2/file.txt”,我們想要獲取到”dir2″的路徑,可以按如下方式完成:
$path = "/dir1/dir2/file.txt"; $dirpath = dirname(dirname($path)); echo $dirpath; //輸出 "/dir1"
在上面的示例程序中,我們首先將$path變量傳遞給dirname()函數,獲取到”/dir1/dir2″這個目錄的路徑,然後再次使用dirname函數,獲取到該目錄的上級目錄的路徑,即”dir1″。
2、獲取相對路徑和絕對路徑
dirname函數也可以在獲取上級目錄時,獲取相對路徑和絕對路徑。下面是一個示例程序:
$path = "/dir1/dir2/file.txt"; $dirpath = dirname(dirname($path)); $relativepath = str_replace($dirpath.'/', '', $path); $absolutepath = $_SERVER['DOCUMENT_ROOT'] . '/' . $relativepath; echo $relativepath; // 輸出"dir2/file.txt" echo $absolutepath; // 輸出"服務器文檔根目錄/dir1/dir2/file.txt"
在上面的示例程序中,我們首先使用dirname函數獲取到”/dir1″這個目錄的路徑,並將其賦值給$dirpath變量。然後使用str_replace函數將路徑中的$dirpath刪除,獲取到相對路徑”dir2/file.txt”。最後,使用$_SERVER[‘DOCUMENT_ROOT’]獲取到當前網站的根目錄,將相對路徑和根目錄拼接得到絕對路徑”服務器文檔根目錄/dir1/dir2/file.txt”。
四、dirname函數的注意事項
dirname函數只能用於獲取路徑的目錄名部分,如果你需要獲取路徑中的文件名,需要用到其他函數。另外,dirname函數在處理不同操作系統的路徑時也可能存在差異,需要注意。
總之,dirname函數在PHP編程過程中經常用到,在文件路徑處理和目錄處理方面具有很強的實用性。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/304846.html