pathinfo
(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)
pathinfo — 返回檔案路徑的資訊
說明
$path, int $flags = PATHINFO_ALL): array|string
pathinfo() 返回一個關聯陣列包含有 path
的資訊。返回關聯陣列還是字串取決於 flags。
注意:
有關取得當前路徑資訊的說明,請閱讀 預定義變數 一節。
注意:
pathinfo() 純粹基於輸入字串操作, 它不會受實際檔案系統和類似 "
.." 的路徑格式影響。
pathinfo() 是本地化的,所以爲了讓它能正確地解析一個包含多位元組編碼的路徑, 必須使用 setlocale() 函式來設定地區資訊。
參數
-
path -
要解析的路徑。
-
flags -
如果指定了,將會返回指定元素;它們包括:
PATHINFO_DIRNAME、PATHINFO_BASENAME、PATHINFO_EXTENSION、PATHINFO_FILENAME。如果沒有指定
flags預設是返回全部的單元。
返回值
如果沒有傳入 options ,將會返回包括以下單元的陣列 array:dirname,basename
和 extension(如果有),以及filename。
注意:
如果
path有一個以上的副檔名,PATHINFO_EXTENSION只返回最後一個,而PATHINFO_FILENAME僅剝離最後一個。 (參考第一個示例)。
注意:
如果
path沒有副檔名,返回數據中就不會有extension元素。(參考第二個示例)
注意:
如果
path中的basename以點開始, 那後面的字串將被解釋為extension, 並且filename為空。(參考第三個示例)
如果 flags 存在的,
則返回一個包含請求元素的 string。
範例
示例 #1 pathinfo() 例子
<?php
$path_parts = pathinfo('/www/htdocs/inc/lib.inc.php');
echo $path_parts['dirname'], "\n";
echo $path_parts['basename'], "\n";
echo $path_parts['extension'], "\n";
echo $path_parts['filename'], "\n";
?>
以上例程會輸出:
/www/htdocs/inc lib.inc.php php lib.inc
示例 #2 pathinfo() 對比空副檔名和無副檔名之間區別的示例
<?php
$path_parts = pathinfo('/path/emptyextension.');
var_dump($path_parts['extension']);
$path_parts = pathinfo('/path/noextension');
var_dump($path_parts['extension']);
?>
以上例程的輸出類似於:
string(0) "" Notice: Undefined index: extension in test.php on line 6 NULL
示例 #3 pathinfo() 形如 .file 的示例
<?php
print_r(pathinfo('/some/path/.test'));
?>
以上例程的輸出類似於:
Array
(
[dirname] => /some/path
[basename] => .test
[extension] => test
[filename] =>
)
參見
- dirname() - 返回路徑中的目錄部分
- basename() - 返回路徑中的檔名部分
- parse_url() - 解析 URL,返回其組成部分
- realpath() - 返回規範化的絕對路徑名