PHP pathinfo 函数
最后修改于 2025 年 4 月 3 日
PHP pathinfo 函数返回有关文件路径的信息。它可以提取目录名、文件名和扩展名组件。
基本定义
pathinfo 函数解析一个路径并返回一个包含这些组件的关联数组或字符串。它接受两个参数:路径和可选的标志。
语法:pathinfo(string $path, int $flags = PATHINFO_ALL): mixed。flags 参数决定要返回哪些组件。
pathinfo 基本示例
这展示了使用 pathinfo 获取所有组件的最简单用法。
basic_pathinfo.php
<?php declare(strict_types=1); $path = "/var/www/html/index.php"; $info = pathinfo($path); print_r($info);
这返回一个包含所有路径组件的数组。dirname 是目录,basename 是完整的文件名,extension 是文件扩展名。
获取特定组件
您可以使用 flags 参数请求特定组件。
specific_components.php
<?php declare(strict_types=1); $path = "/var/www/html/index.php"; $dirname = pathinfo($path, PATHINFO_DIRNAME); $basename = pathinfo($path, PATHINFO_BASENAME); $extension = pathinfo($path, PATHINFO_EXTENSION); $filename = pathinfo($path, PATHINFO_FILENAME); echo "Dir: $dirname\n"; // /var/www/html echo "Base: $basename\n"; // index.php echo "Ext: $extension\n"; // php echo "File: $filename\n"; // index
每个标志仅返回一个组件作为字符串。当您只需要一部分时,这比获取整个数组更有效。
Windows 路径示例
pathinfo 适用于使用反斜杠的 Windows 路径。
windows_path.php
<?php declare(strict_types=1); $path = "C:\\Windows\\System32\\kernel32.dll"; $info = pathinfo($path); print_r($info);
该函数正确处理 Windows 风格的路径。它返回组件,无论输入中使用哪种目录分隔符样式。
URL 路径示例
pathinfo 也可以解析 URL 路径以提取组件。
url_path.php
<?php declare(strict_types=1); $url = "https://example.com/images/logo.png"; $info = pathinfo($url); print_r($info);
这从 URL 路径中提取组件。请注意,pathinfo 不验证 URL - 它将它们作为字符串处理。
没有扩展名的文件
该函数正确处理没有扩展名的文件。
no_extension.php
<?php declare(strict_types=1); $path = "/home/user/docs/README"; $info = pathinfo($path); print_r($info);
对于没有扩展名的文件,数组中不存在 extension 键。filename 和 basename 相同。
边缘情况
pathinfo 在某些边缘情况下有一些有趣的特性。
edge_cases.php
<?php declare(strict_types=1); $path1 = "/var/www/html/"; $path2 = "/var/www/html"; $path3 = "filename.txt"; print_r(pathinfo($path1)); print_r(pathinfo($path2)); print_r(pathinfo($path3));
对于目录路径,basename 返回目录名称。对于简单的文件名,它只返回文件名。尾部的斜杠将被忽略。
最佳实践
- 验证输入:在处理之前检查路径是否存在。
- 处理编码:注意路径中的字符编码。
- 安全:在文件系统操作中使用时,对输入进行清理。
- 性能:当您只需要特定组件时,使用 flags。
- 跨平台:适用于 Unix 和 Windows 路径。
来源
本教程介绍了 PHP pathinfo 函数,并提供了实际示例,展示了它在不同场景中的用法。
作者
列出 所有 PHP 文件系统函数。