使用pathinfo()查找映像的真实扩展名


Finding an images true extension using pathinfo()

我使用以下命令来检测外部图像的扩展名:

        $url = (POST_IMAGESELECTOR);
        $path_parts = pathinfo($url);
        $extension = $path_parts['extension'];

所有图片来自不同的外部来源。上面的示例在80%的情况下工作,但是,当我遇到没有传统扩展的图像时,它就会失败。一个例子是位于这里的图像:

http://media.kohls.com.edgesuite.net/is/image/kohls/227522?wid=1000&hei=1000&op_sharpen=1

像这样的图像上的扩展名是什么?我怎样才能返回真正的扩展?

谢谢!

如果您确定所讨论的文件实际上是一个图像,那么您可以使用getimagesize()或exif_imagetype()来确定您正在处理的图像类型。然后,您可以将其映射到适当的文件扩展名。

要小心,如果你在非图像文件上调用这些函数,你不能确定会发生什么。

请尝试此代码

$url = (POST_IMAGESELECTOR);
list($width, $height, $type, $attr) = getimagesize($url);
$imageType = image_type_to_mime_type($type);
witch($imageType) {
    case "image/jpeg":
        // your actions go here...
}

只为利益着想。另一种方法:

$newFileName = $_FILES['userfile']['name'];
$fileExt =substr(strrchr($newFileName,'.'),1);