• [函数] PHP取二进制文件头快速判断文件类型


    一般我们都是按照文件扩展名来判断文件类型,但其实不太靠谱,因为可以通过修改扩展名来伪装文件类型。
    其实我们可以通过读取文件信息来识别,
    比如 PHP扩展中提供了类似 exif_imagetype 这样的函数读取图片类的文件类型,但是很多时候扩展不一定安装了这样的扩展。
    下面这个函数就展示了自己通过读取文件头信息来识别文件的真实类型:
    1. function file_type($file) {
    2.         $filepath = realpath($file);
    3.         $filetype = array(
    4.                 7790=>'exe', 7784=>'midi',
    5.                 8075=>'zip', 8297=>'rar',
    6.                 7173=>'gif', 6677=>'bmp', 13780=>'png', 255216=>'jpg'
    7.         );
    8.         if (!($fp = @fopen($filepath, 'rb'))) return false;
    9.         $bin = fread($fp, 2);
    10.         fclose($fp);
    11.         $str_info = @unpack('C2chars', $bin);
    12.         $str_code = intval($str_info['chars1'].$str_info['chars2']);
    13.         return isset($filetype[$str_code]) ? $filetype[$str_code] : 'unknown';
    14. }
    复制代码
  • 相关阅读:
    二叉树遍历
    NO.35 2021/12/13(06:50)[周一]
    NO.29 2021/11/30(06:30)[周二]
    NO.22 2021/11/19(06:15) [周五]
    The .NET ORM Architec
    C#格式字符串
    C# Attribute
    .net DLL反编译文件
    【Beta】Scrum meeting1
    【Alpha】Scrum meeting 6
  • 原文地址:https://www.cnblogs.com/shaoguan/p/6515258.html
Copyright © 2020-2023  润新知