LEN

php 判断二进制文件的格式
php 判断二进制文件的格式 .最简单的方法就是判断文件后缀名,但是问题是如果修改了文件后缀名呢?那么现在从外部文...
扫描右侧二维码阅读全文
07
2016/03

php 判断二进制文件的格式

php 判断二进制文件的格式 .

最简单的方法就是判断文件后缀名,但是问题是如果修改了文件后缀名呢?
那么现在从外部文件名的后缀无法判断文件的格式,那么就从内部查找;
不同格式的文件结构 中都会有规定的标识,也是一种文件结构协议!
1.每个二进制文件的头两个字节作为文件标识;
2.每个二进制文件中都存在不同的标识符(具体未统计);

    //从文件内部判断类型 取每个文件的前两个字节
    $filename = "./1.png";
    $file = fopen($filename, "rb");
    $bin = fread($file, 2); //只读2字节
    fclose($file);
    // unpack() 函数从二进制字符串对数据进行解包。
    $strInfo = @unpack("C2", $bin);
    $typeCode = "$strInfo[1]"."$strInfo[2]";
    $fileType = '';
    switch ($typeCode)
    {
        case 7790:
            $fileType = 'exe';
            break;
        case 7784:
            $fileType = 'midi';
            break;
        case 8297:
            $fileType = 'rar';
            break;
        case 255216:
            $fileType = 'jpg';
            break;
        case 7173:
            $fileType = 'gif';
            break;
        case 6677:
            $fileType = 'bmp';
            break;
        case 13780:
            $fileType = 'png';
            break;
        default:
            echo 'unknown';
    }
    echo 'this is a(an) '.$fileType.' file:'.$typeCode;

    EXIT;
Last modification:March 30th, 2017 at 01:48 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment