pathinfo

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

pathinfo返回文件路径的信息

说明

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

pathinfo() 返回一个关联数组包含有 path 的信息。返回关联数组还是字符串取决于 flags

注意:

有关取得当前路径信息的说明,请阅读 预定义变量 一节。

注意:

pathinfo() 纯粹基于输入字符串操作, 它不会受实际文件系统和类似 ".." 的路径格式影响。

警告

pathinfo() 是本地化的,所以为了让它能正确地解析一个包含多字节编码的路径, 必须使用 setlocale() 函数来设置地区信息。

参数

path

要解析的路径。

flags

如果指定了,将会返回指定元素;它们包括: PATHINFO_DIRNAMEPATHINFO_BASENAMEPATHINFO_EXTENSIONPATHINFO_FILENAME

如果没有指定 flags 默认是返回全部的单元。

返回值

如果没有传入 options ,将会返回包括以下单元的数组 arraydirnamebasenameextension(如果有),以及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] =>
)

参见