PHP通过文件路径获取文件名的实例代码

一、手动字符串截取实现

php
// 定义待处理的文件路径
$file = '/www/htdocs/inc/lib.inc.php';
// 先提取路径末尾的文件全称
$filename = basename($file);
echo $filename . '<br/>'; // 输出结果:lib.inc.php

// 定位文件名最后一个点号的位置,将后缀(含点号)替换为空,得到无后缀的文件名
$filename = str_replace(strrchr($filename, '.'), '', $filename);
echo $filename . '<br/>'; // 输出结果:lib.inc

该方法逻辑简单,但仅适用于单后缀文件场景,若遇到多后缀文件(如test.tar.gz),仅会移除最后一个后缀。


二、pathinfo() 函数实现

pathinfo()PHP内置的路径解析函数,可根据传入参数返回不同粒度的路径信息,支持两种调用形式:

1. 仅传入路径参数:返回全量路径信息关联数组

php
$file = '/www/htdocs/inc/lib.inc.php';
$path_parts = pathinfo($file);

echo '目录路径:' . $path_parts['dirname'] . '<br/>'; // 输出:/www/htdocs/inc
echo '文件全称:' . $path_parts['basename'] . '<br/>'; // 输出:lib.inc.php
echo '文件后缀:' . $path_parts['extension'] . '<br/>'; // 输出:php
echo '无后缀文件名:' . $path_parts['filename'] . '<br/>'; // 输出:lib.inc
// 注:`filename` 字段需要 PHP >= 5.2.0 版本才支持

2. 传入路径+指定字段参数:直接返回对应属性值

php
// 以下语法同样需要 PHP >= 5.2.0 版本支持
echo '目录路径:' . pathinfo($file, PATHINFO_DIRNAME) . '<br/>'; // 输出:/www/htdocs/inc
echo '文件全称:' . pathinfo($file, PATHINFO_BASENAME) . '<br/>'; // 输出:lib.inc.php
echo '文件后缀:' . pathinfo($file, PATHINFO_EXTENSION) . '<br/>'; // 输出:php
echo '无后缀文件名:' . pathinfo($file, PATHINFO_FILENAME) . '<br/>'; // 输出:lib.inc

相比手动截取,pathinfo() 对多后缀文件的处理逻辑统一,且可一次性获取全部路径属性,代码可读性与兼容性更强。

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论