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

猜你喜欢

转载自blog.51cto.com/12173069/2126591