当前位置:首页 > PHP

php实现pathinfo

2026-02-28 12:22:06PHP

获取路径信息的 PHP 实现方法

PHP 提供了内置函数 pathinfo() 用于解析文件路径信息,返回一个包含目录名、文件名、扩展名等信息的关联数组。以下是具体用法和示例:

基本用法

pathinfo() 函数接受文件路径作为参数,返回包含以下键的数组:

  • dirname:目录路径
  • basename:文件名(含扩展名)
  • extension:文件扩展名(不含点)
  • filename:文件名(不含扩展名)
$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('/var/www/html/example.php', PATHINFO_EXTENSION);
echo $extension; // 输出 "php"

可用常量选项:

  • PATHINFO_DIRNAME
  • PATHINFO_BASENAME
  • PATHINFO_EXTENSION
  • PATHINFO_FILENAME

处理无扩展名文件

当文件没有扩展名时,extension 键不会出现在返回数组中:

$path = '/var/www/html/README';
$info = pathinfo($path);
print_r($info);

输出结果:

Array
(
    [dirname] => /var/www/html
    [basename] => README
    [filename] => README
)

注意事项

  • 路径分隔符应使用正斜杠 /(Windows 和 Unix 都兼容)
  • 函数会正确处理包含多个点的文件名(如 archive.tar.gz
  • 对于相对路径也能正确解析

自定义实现示例

如果需要自定义路径解析逻辑,可以参考以下实现:

function custom_pathinfo($path) {
    $result = [];
    $result['dirname'] = rtrim(substr($path, 0, strrpos($path, '/')), '/') ?: '.';
    $result['basename'] = ltrim(substr($path, strrpos($path, '/')), '/');

    if (strpos($result['basename'], '.') !== false) {
        $result['extension'] = substr($result['basename'], strrpos($result['basename'], '.') + 1);
        $result['filename'] = substr($result['basename'], 0, strrpos($result['basename'], '.'));
    } else {
        $result['filename'] = $result['basename'];
    }

    return $result;
}

这种方法适用于需要特殊处理路径的场景,但通常建议直接使用内置的 pathinfo() 函数。

php实现pathinfo

标签: phppathinfo
分享给朋友:

相关文章

php实现搜索

php实现搜索

PHP实现搜索功能的方法 在PHP中实现搜索功能通常涉及数据库查询和用户输入的匹配。以下是几种常见的实现方式: 使用MySQL LIKE语句 通过简单的LIKE语句实现基础搜索: $searchT…

php实现注册

php实现注册

注册功能实现步骤 数据库准备 创建用户表,包含字段如id、username、password、email等。示例SQL: CREATE TABLE users ( id INT AUTO_I…

php实现接口

php实现接口

PHP 实现接口的方法 在 PHP 中,接口(Interface)用于定义一组方法的规范,而不实现具体功能。类可以实现一个或多个接口,并必须实现接口中定义的所有方法。 定义接口 接口使用 inte…

php实现下载

php实现下载

PHP实现文件下载 使用PHP实现文件下载可以通过设置HTTP头部信息强制浏览器下载文件而非直接打开。以下是几种常见的方法: 方法一:直接输出文件内容 $file_path = 'path/to/…

php 实现队列

php 实现队列

PHP 实现队列的方法 PHP 可以通过多种方式实现队列功能,以下是几种常见的实现方法: 使用数组实现队列 PHP 数组可以通过 array_push 和 array_shift 函数模拟队列的先…

php实现推送消息推送消息

php实现推送消息推送消息

PHP 实现消息推送的方法 使用 WebSocket 实现实时推送 WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议,适合实现实时消息推送。 安装 Ratchet 库(WebS…