使用pathinfo()查找图像真正的扩展名

时间:2012-01-05 07:45:27

标签: php image-processing

我正在使用以下内容来检测EXTERNAL图像的扩展名:

        $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

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

谢谢!

3 个答案:

答案 0 :(得分:1)

如果您确定相关文件实际上是图片,那么您可以使用getimagesize()exif_imagetype()来确定您正在使用的图片类型。然后,您可以将其映射到相应的文件扩展名。

但要小心,如果在不是图像的文件上调用这些函数,则无法确定会发生什么。

答案 1 :(得分:0)

请尝试此代码。

$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...
}

答案 2 :(得分:0)

仅为了福利.. 另一种方法:

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