php获取图片真实后缀的两种方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php获取图片真实后缀的两种方法相关的知识,希望对你有一定的参考价值。

一、getimagesize(支持base64):

  1. 代码:
    <?php
    /*
    @desc:获取图片真实后缀
    @param   name    文件名
    @return  suffix  文件后缀
    */   
    function getimgsuffix($name) {
    $info = getimagesize($name);
    $suffix = false;
    if($mime = $info[‘mime‘]){
        $suffix = explode(‘/‘,$mime)[1];
    }
    return $suffix;
    }
  2. 测试:
    $suffix = getimgsuffix(‘http://192.168.8.81/public/image/01.jpg‘);
    echo $suffix;
  3. 输出:
    jpeg

    二、二进制方法:

  4. 代码:
    <?php
    /*
    @desc:获取文件真实后缀
    @param   name    文件名
    @return  suffix  文件后缀
    */   
    function getfilesuffix($name) {
    $file = fopen($name, "rb");
    $bin = fread($file, 2); // 只读2字节
    fclose($file);
    $info = @unpack("C2chars", $bin);
    $code = intval($info[‘chars1‘] . $info[‘chars2‘]);
    $suffix = "unknow";
    if($code == 255216){
        $suffix = "jpg";
    }elseif($code == 7173){
        $suffix = "gif";
    }elseif($code == 13780){
        $suffix = "png";
    }elseif($code == 6677){
        $suffix = "bmp";
    }elseif($code == 7798){
        $suffix = "exe";
    }elseif($code == 7784){
        $suffix = "midi";
    }elseif($code == 8297){
        $suffix = "rar";
    }elseif($code == 7368){
        $suffix = "mp3";
    }elseif($code == 0){
        $suffix = "mp4";
    }elseif($code == 8273){
        $suffix = "wav";
    }
    return $suffix;
    }
  5. 测试:
    $suffix = getfilesuffix(‘http://192.168.8.81/public/image/01.jpg‘);
    echo $suffix;
  6. 输出:
    jpg

以上是关于php获取图片真实后缀的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

PHP获取文件后缀名

php如何防止图片盗用/盗链的两种方法

php如何防止图片盗用/盗链的两种方法(转)

php图片上传检测是否为真实图片格式

Java通过图片url地址获取图片base64位字符串的两种方式

php 分享两种给图片加水印的方法