在PHP 中, pathinfo()函數是用來解析文件路徑的一個非常實用的函數。它可以幫助我們快速地獲取路徑中的各種組成部分,比如目錄名、文件名、擴展名等等。而在這些組成部分中, PATHINFO_DIRNAME常常被初學者忽略或誤解。今天,我們就來深入了解一下PATHINFO_DIRNAME到底是什麼,它的作用是什麼。
pathinfo()函數用於解析一個文件路徑,並返迴路徑的組成信息。它的基本語法是:
pathinfo(string $path, int $options = PATHINFO_ALL): array|string
$path :要解析的文件路徑。
$options :指定要獲取的信息部分。可以是以下常量之一:
PATHINFO_DIRNAME :返迴路徑中的目錄部分
PATHINFO_BASENAME :返回文件名(包含擴展名)
PATHINFO_EXTENSION :返回文件擴展名
PATHINFO_FILENAME :返回文件名(不包含擴展名)
如果不指定,默認返回包含上述所有信息的關聯數組。
PATHINFO_DIRNAME是pathinfo()函數的一個選項,表示只返迴路徑中的目錄部分。換句話說,它告訴你文件所在的目錄路徑,而不包含文件名本身。
例如:
<?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的作用主要體現在以下幾個方面:
獲取文件所在目錄<br> 當你只想知道文件在哪個目錄,而不關心文件名時,使用PATHINFO_DIRNAME非常方便
目錄操作<br> 在對文件路徑進行操作,比如移動文件、複製文件,或生成新文件路徑時,常常需要先得到目錄部分
防止路徑錯誤<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_DIRNAME是pathinfo()函數的重要選項,用來獲取路徑中的目錄部分。它在文件路徑處理和目錄操作中非常有用,能夠幫助你輕鬆獲取文件的所在目錄,便於後續的路徑拼接和文件操作。
掌握它的用法,能讓你在PHP 中處理文件路徑更加游刃有餘。
<?php
$examplePath = "https://gitbox.net/path/to/file.txt";
$dirName = pathinfo($examplePath, PATHINFO_DIRNAME);
echo $dirName; // 輸出:https://gitbox.net/path/to
?>