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

可能重复:
如何在PHP中提取文件扩展名?

我希望得到我正在上传的图像的文件扩展名,但我只是得到一个数组。

$userfile_name = $_FILES['image']['name']; $userfile_extn = explode(".", strtolower($_FILES['image']['name'])); 

有没有办法只是得到扩展本身?

不需要使用string函数。 你可以使用你想要的东西: pathinfo()

 $path = $_FILES['image']['name']; $ext = pathinfo($path, PATHINFO_EXTENSION); 

这也将工作:

 $array = explode('.', $_FILES['image']['name']); $extension = end($array); 

更好的方法是使用strrpos + substr(比爆炸更快):

 $userfile_name = $_FILES['image']['name']; $userfile_extn = substr($userfile_name, strrpos($userfile_name, '.')+1); 

但是,要检查文件的types,使用mime_content_type是一个更好的方法: http ://www.php.net/manual/en/function.mime-content-type.php

你可以试试这个MIMEtypes

 $image = getimagesize($_FILES['image']['tmp_name']); 

$image['mime']将返回MIMEtypes。

这个函数不需要GD库。 你可以在这里find文档。

这将返回图像的MIMEtypes。

有些人使用$_FILES["file"]["type"]但它是不可靠的,由浏览器给出,而不是由PHP。

您可以像ThiefMasterbuild议的那样使用pathinfo()来检索图像扩展名。

首先确保图像在开发过程中成功上传,然后再对图像进行任何操作。

怎么样

 $ext = array_pop($userfile_extn);