How to find the extension of an image from path in PHP?

前端 未结 9 667
抹茶落季
抹茶落季 2021-01-04 12:52

Is there any standard function in PHP to find only extension of an image from the corresponding file path?

For example ff my image path is like \'/testdir/dir2/image

相关标签:
9条回答
  • 2021-01-04 13:12

    Basic string functions, strrpos() and substr() can do that for you. As well as many other fancy ways.

    0 讨论(0)
  • 2021-01-04 13:19

    I would recommend you to run any uploaded/linked image(s) through a GD/ImageMagick check and re-save it to prevent any malicious codes hidden within the images. This would also allow you to save all of the images with the same extension to make things easier for you.

    http://www.php.net/imagepng
    http://www.php.net/imagegif
    http://www.php.net/imagejpeg

    0 讨论(0)
  • 2021-01-04 13:20

    I think the easy way using strrpos() and substr() methods

    $path = "/testdir/dir2/image.gif";
    $ext = substr($path, strrpos($path, '.')+1);
    echo $ext; // output will be gif
    

    more answers for Another Question related to this Question

    0 讨论(0)
  • 2021-01-04 13:24

    As Col. Shrapnel mentioned; there's quite a few ways

    $path = '/some/where/img.gif';
    $path = explode('.',$path);
    $path = end($path);
    
    0 讨论(0)
  • 2021-01-04 13:27

    I had problem with first answer and url with anchor ex. google.com/image.jpg#anchor

    better solution

    $filename_from_url = parse_url($url);
    $ext = pathinfo($filename_from_url['path'], PATHINFO_EXTENSION);
    
    0 讨论(0)
  • 2021-01-04 13:28

    I think the most correct way is using echo exif_imagetype function:

       exif_imagetype("/testdir/dir2/image.gif");
    
       function get_image_type($image_path){
    
            $extension  = array(IMAGETYPE_GIF => "gif",
            IMAGETYPE_JPEG => "jpeg",
            IMAGETYPE_PNG => "png",
            IMAGETYPE_SWF => "swf",
            IMAGETYPE_PSD => "psd",
            IMAGETYPE_BMP => "bmp",
            IMAGETYPE_TIFF_II => "tiff",
            IMAGETYPE_TIFF_MM => "tiff",
            IMAGETYPE_JPC => "jpc",
            IMAGETYPE_JP2 => "jp2",
            IMAGETYPE_JPX => "jpx",
            IMAGETYPE_JB2 => "jb2",
            IMAGETYPE_SWC => "swc",
            IMAGETYPE_IFF => "iff",
            IMAGETYPE_WBMP => "wbmp",
            IMAGETYPE_XBM => "xbm",
            IMAGETYPE_ICO => "ico");
    
            return $extension[exif_imagetype($image_path)];
    }
    
    0 讨论(0)
提交回复
热议问题