php实现pathinfo
PHP 实现 pathinfo 功能
PHP 内置的 pathinfo() 函数用于解析文件路径信息,返回一个关联数组或字符串,包含目录名、文件名、扩展名等信息。以下是具体实现方法和示例:
基本语法
pathinfo(string $path, int $options = PATHINFO_ALL): mixed
$path:需要解析的文件路径。$options:可选参数,指定返回的内容类型:PATHINFO_DIRNAME:返回目录名。PATHINFO_BASENAME:返回文件名(含扩展名)。PATHINFO_EXTENSION:返回扩展名。PATHINFO_FILENAME:返回文件名(不含扩展名)。PATHINFO_ALL(默认):返回包含所有信息的关联数组。
示例代码
$path = '/var/www/html/example.php';
// 返回关联数组
$info = pathinfo($path);
print_r($info);
/*
输出:
Array
(
[dirname] => /var/www/html
[basename] => example.php
[extension] => php
[filename] => example
)
*/
// 单独获取扩展名
$extension = pathinfo($path, PATHINFO_EXTENSION);
echo $extension; // 输出:php
自定义实现
如果需要手动实现类似功能,可以使用字符串操作函数:
function customPathinfo($path, $option = null) {
$result = [];
$result['dirname'] = dirname($path);
$result['basename'] = basename($path);
$dotPos = strrpos($result['basename'], '.');
if ($dotPos !== false) {
$result['extension'] = substr($result['basename'], $dotPos + 1);
$result['filename'] = substr($result['basename'], 0, $dotPos);
} else {
$result['extension'] = '';
$result['filename'] = $result['basename'];
}
if ($option !== null) {
return $result[$option] ?? null;
}
return $result;
}
注意事项
- 路径中的斜杠(
/或\)会被自动处理,无需手动转换。 - 如果路径没有扩展名(如
/var/www/html/example),extension键值为空字符串。 - Windows 和 Unix 路径格式均支持。
通过以上方法,可以灵活获取文件路径的各个组成部分,适用于文件上传、日志处理等场景。







