當前位置: 首頁> 最新文章列表> pathinfo 的PATHINFO_DIRNAME 是如何工作的?

pathinfo 的PATHINFO_DIRNAME 是如何工作的?

gitbox 2025-06-03

在PHP 中, pathinfo()函數是用來解析文件路徑的一個非常實用的函數。它可以幫助我們快速地獲取路徑中的各種組成部分,比如目錄名、文件名、擴展名等等。而在這些組成部分中, PATHINFO_DIRNAME常常被初學者忽略或誤解。今天,我們就來深入了解一下PATHINFO_DIRNAME到底是什麼,它的作用是什麼。

什麼是pathinfo 函數?

pathinfo()函數用於解析一個文件路徑,並返迴路徑的組成信息。它的基本語法是:

 pathinfo(string $path, int $options = PATHINFO_ALL): array|string
  • $path :要解析的文件路徑。

  • $options :指定要獲取的信息部分。可以是以下常量之一:

    • PATHINFO_DIRNAME :返迴路徑中的目錄部分

    • PATHINFO_BASENAME :返回文件名(包含擴展名)

    • PATHINFO_EXTENSION :返回文件擴展名

    • PATHINFO_FILENAME :返回文件名(不包含擴展名)

    • 如果不指定,默認返回包含上述所有信息的關聯數組。

PATHINFO_DIRNAME 是什麼?

PATHINFO_DIRNAMEpathinfo()函數的一個選項,表示只返迴路徑中的目錄部分。換句話說,它告訴你文件所在的目錄路徑,而不包含文件名本身。

例如:

 <?php
$path = "/var/www/html/index.php";
$dirname = pathinfo($path, PATHINFO_DIRNAME);
echo $dirname;
?>

輸出:

 /var/www/html

這裡PATHINFO_DIRNAME就返回了文件所在的目錄/var/www/html ,而不是文件名index.php

作用與場景

PATHINFO_DIRNAME的作用主要體現在以下幾個方面:

  1. 獲取文件所在目錄<br> 當你只想知道文件在哪個目錄,而不關心文件名時,使用PATHINFO_DIRNAME非常方便

  2. 目錄操作<br> 在對文件路徑進行操作,比如移動文件、複製文件,或生成新文件路徑時,常常需要先得到目錄部分

  3. 防止路徑錯誤<br> 在拼接路徑時,先獲取目錄路徑,再追加新的文件名或子目錄,可以避免路徑拼接錯誤

結合實際示例

假設你有一個上傳的文件路徑,你想要得到文件所在目錄,並在該目錄下生成一個新的文件:

 <?php
$uploadPath = "/uploads/images/photo.jpg";

// 獲取目錄名
$dir = pathinfo($uploadPath, PATHINFO_DIRNAME);

// 生成新文件路徑
$newFile = $dir . "/photo_thumb.jpg";

echo "新文件路徑:" . $newFile;
?>

輸出:

 新文件路徑:/uploads/images/photo_thumb.jpg

通過PATHINFO_DIRNAME ,我們很方便地拿到了上傳文件的目錄,並生成了同目錄下的新文件路徑。

注意事項

  • 當路徑中不包含目錄部分時, PATHINFO_DIRNAME會返回一個點"." ,表示當前目錄:

 <?php
$path = "file.txt";
echo pathinfo($path, PATHINFO_DIRNAME);
?>

輸出:

 .
  • PATHINFO_DIRNAME只返回目錄路徑,不包含文件名或擴展名。

  • 在Windows 系統中,路徑分隔符是反斜杠\pathinfo會自動處理。

總結

PATHINFO_DIRNAMEpathinfo()函數的重要選項,用來獲取路徑中的目錄部分。它在文件路徑處理和目錄操作中非常有用,能夠幫助你輕鬆獲取文件的所在目錄,便於後續的路徑拼接和文件操作。

掌握它的用法,能讓你在PHP 中處理文件路徑更加游刃有餘。


 <?php
$examplePath = "https://gitbox.net/path/to/file.txt";
$dirName = pathinfo($examplePath, PATHINFO_DIRNAME);
echo $dirName; // 輸出:https://gitbox.net/path/to
?>