«

PHP获取文件扩展名

时间:2026-10-21 07:01     作者:emer     分类: 无


PHP获取文件扩展名

引言

文件上传、附件处理、图片裁剪时都要先拿到后缀判断类型。别用explode切字符串硬切,pathinfo是PHP专门解析路径的函数,能干净返回扩展名、文件名、目录名各部分。

pathinfo 标准用法

$file = '/var/www/upload/photo.2024.jpg';
$info = pathinfo($file);
echo $info['extension'];   // jpg
echo $info['filename'];    // photo.2024
echo $info['dirname'];     // /var/www/upload

一次返回路径各组成部分,最稳妥。

只取扩展名

$ext = pathinfo($file, PATHINFO_EXTENSION);
// jpg

传第二个常量直接拿扩展名,省一次数组取值。

处理无扩展名文件

$ext = pathinfo('README', PATHINFO_EXTENSION);
// 空字符串,不会报错

没扩展名时返回空串,记得做空判断。

大写转小写统一

$ext = strtolower(pathinfo($file, PATHINFO_EXTENSION));

用户传JPG、Jpg、jpg都归一,上传校验用统一小写比较。

不要用explode硬切

// 反面例子:photo.2024.jpg 会切错
$parts = explode('.', $file);
$ext = end($parts);

多级点号文件名会取错,pathinfo按最后一个点正确取后缀。

注意事项

总结

pathinfo($file, PATHINFO_EXTENSION)取扩展名最稳,filename拿文件名、dirname拿目录,无扩展名返回空串记得判断,业务里统一strtolower小写。不要用explode切多级点号文件名。扩展名只是展示用,真实类型靠finfo判断,上传安全还需白名单加文件内容校验和重命名存储。

标签: PHP 后端开发 文件上传 pathinfo 文件扩展名