pathinfo

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

pathinfo返回文件路徑的信息

說明

pathinfo(string $path, int $flags = PATHINFO_ALL): array|string

pathinfo() 返回一個(gè)關(guān)聯(lián)數(shù)組包含有 path 的信息。返回關(guān)聯(lián)數(shù)組還是字符串取決于 flags。

注意:

有關(guān)取得當(dāng)前路徑信息的說明,請(qǐng)閱讀 預(yù)定義變量 一節(jié)。

注意:

pathinfo() 純粹基于輸入字符串操作, 它不會(huì)受實(shí)際文件系統(tǒng)和類似 ".." 的路徑格式影響。

警告

pathinfo() 是本地化的,所以為了讓它能正確地解析一個(gè)包含多字節(jié)編碼的路徑, 必須使用 setlocale() 函數(shù)來設(shè)置地區(qū)信息。

參數(shù)

path

要解析的路徑。

flags

如果指定了,將會(huì)返回指定元素;它們包括: PATHINFO_DIRNAME、 PATHINFO_BASENAMEPATHINFO_EXTENSION、 PATHINFO_FILENAME。

如果沒有指定 flags 默認(rèn)是返回全部的單元。

返回值

如果沒有傳入 options ,將會(huì)返回包括以下單元的數(shù)組 arraydirnamebasenameextension(如果有),以及filename

注意:

如果 path 有一個(gè)以上的擴(kuò)展名, PATHINFO_EXTENSION 只返回最后一個(gè),而 PATHINFO_FILENAME 僅剝離最后一個(gè)。 (參考第一個(gè)示例)。

注意:

如果 path 沒有擴(kuò)展名,返回?cái)?shù)據(jù)中就不會(huì)有 extension 元素。(參考第二個(gè)示例)

注意:

如果 path 中的 basename 以點(diǎn)開始, 那后面的字符串將被解釋為 extension , 并且 filename 為空。(參考第三個(gè)示例)

如果 flags 存在的, 則返回一個(gè)包含請(qǐng)求元素的 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";
?>

以上例程會(huì)輸出:

/www/htdocs/inc
lib.inc.php
php
lib.inc

示例 #2 pathinfo() 對(duì)比空擴(kuò)展名和無擴(kuò)展名之間區(qū)別的示例

<?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] =>
)

參見