PHP获取文件后缀名(扩展名)的7种方法。
字符串截取
56916556427627.png$file_name = 'a.b.c.png';
echo strrchr($file_name, '.');
info:使用 strrchr()
函数找到字符 .
在字符串中最后出现的位置,并返回从该位置到字符串结尾的所有字符。
569171433075971.png$file_name = 'a.b.c.png';
echo substr($file_name, strrpos($file_name, '.'));
info:使用 strrpos()
函数找到字符 .
在字符串中最后一次出现的位置,然后使用 substr()
函数从该位置开始截取字符串。
数组分割
569172894770027.png$file_name = 'a.b.c.png';
$arr=explode('.', $file_name);
echo $arr[count($arr)-1];
info:使用 explode()
函数分割字符串到数组,然后返回数组的最后一个元素。
569171460915041.png$file_name = 'a.b.c.png';
$arr=explode('.', $file_name);
echo end($arr);
info:基本同上,这里使用 end()
函数返回数组的最后一个元素。
569171085222251.png$file_name = 'a.b.c.png';
echo strrev(explode('.', strrev($file_name))[0]);
info:strrev()
函数,反转字符串。这里先反转文件名字符串,然后使用 .
分割字符串并返回数组的第一个元素,最后再次反转。
warning:PS:个人感觉整个有一点简单问题复杂化。好处就是,不用判断数组长度了。
使用路径函数
56917619385548.png$file_name = 'a.b.c.png';
echo pathinfo($file_name)['extension'];
info:pathinfo()
函数以数组的形式返回文件路径的信息。
//`pathinfo()` 函数返回的数组包括以下的数组元素:
Array
(
[dirname] // 文件路径 “.”
[basename] // 文件名 “a.b.c.png”
[extension] // 文件扩展名 “png”
)
569171548380459.png$file_name = 'a.b.c.png';
echo pathinfo($file_name, PATHINFO_EXTENSION);
info:基本同上。
可选的参数。规定要返回的数组元素。默认是 all。
- PATHINFO_DIRNAME - 只返回 dirname
- PATHINFO_BASENAME - 只返回 basename
- PATHINFO_EXTENSION - 只返回 extension
部分内容参考 https://www.php.cn/php-weizijiaocheng-392130.html