📜  如何在PHP中获取文件扩展名?(1)

📅  最后修改于: 2023-12-03 15:08:56.059000             🧑  作者: Mango

如何在PHP中获取文件扩展名?

在开发过程中,经常需要获取文件的扩展名,如判断图片类型是否为jpg或png等。下面介绍几种在PHP中获取文件扩展名的方法。

方法一:使用pathinfo函数

可以使用PHP内置函数pathinfo函数去获取文件扩展名。pathinfo()函数可以返回数组,包含文件路径的信息。其中,数组键名’extension’返回文件的扩展名。

<?php
$file = '/path/to/some/file.txt';
$extension = pathinfo($file, PATHINFO_EXTENSION);
echo $extension; //输出:txt
?>

其中,$file为文件的路径。第二个参数PATHINFO_EXTENSION是一个常量,指定了要返回的信息类型(文件的扩展名)。

方法二:使用explode函数和end函数

这种方法是将文件名用“.”号分割成数组,然后使用end()函数获取最后一个元素。

<?php
$file = '/path/to/some/file.txt';
$extension = end(explode('.', $file));
echo $extension; //输出:txt
?>

实际上,使用pathinfo函数是更好的选择。

方法三:使用substr函数

这种方法利用了字符串截取函数substr()来截取文件名中“.”号后面的部分。

<?php
$file = '/path/to/some/file.txt';
$extension = substr(strrchr($file, "."), 1);
echo $extension; //输出:txt
?>

其中,strrchr()函数查找文件名中的最后一个“.”号,并返回它及其后面的部分。substr()函数用来去除第一个“.”号。

方法四:使用正则表达式

使用正则表达式匹配文件名中的扩展名。

<?php
$file = '/path/to/some/file.txt';
preg_match('/\.[^.]*$/', $file, $matches);
$extension = $matches[0];
echo $extension; //输出:.txt
?>

其中,正则表达式用来匹配文件名中的“.”号和后面的扩展名。

此外,在获取文件扩展名时,要考虑特殊情况,如文件名中包含多个“.”号,但最后一个“.”号后面的字符串才是真正的扩展名。例如:myfile.tar.gz,其扩展名为.gz。

以上是在PHP中获取文件扩展名的几种方法,推荐使用pathinfo函数,它是最简单、最常用的方法。