tinram/file-identifier

一个简单的库,通过MIME类型和文件签名识别文件。

dev-master 2020-04-19 22:55 UTC

This package is auto-updated.

Last update: 2024-09-20 08:25:57 UTC


README

通过MIME类型和文件签名检测识别文件。

目的

通过MIME类型信息和文件签名(头部)字节检测文件类型。(文件扩展名被忽略。)

(文件扩展名被忽略。)

用法

Unix系统有file命令,这是一个强大的文件识别工具,可以通过PHP的shell函数调用。

然而,这个命令并不总是可用。

文件识别器的主要用途包括

  • 对于PHP shell函数在php.inidisable_functions=)中禁用的Unix服务器
  • 在Windows上运行的PHP,其中没有本地的file命令
  • 当在Unix服务器上安装较旧的file版本(例如v. 5.09)时,并且这些版本不能识别某些文件,如.gpg
  • 当自定义、旧或稀有的文件类型不能被file命令识别时。

示例用法

    require('FileIdentifier.php');
    require('FileSignatures.php');

    use Tinram\FileIdentifier\FileIdentifier;

    $f = new FileIdentifier('mira.png');
    $r = $f->getResult();
    echo $r['mimeinfo'] . PHP_EOL . $r['fileinfo'];

文件签名

文件签名数据(FileSignatures.php)包含有限范围的常见文件类型签名的十六进制字节。

这个数据数组可以很容易地通过添加额外的和自定义的文件签名来扩展。

许可

文件识别器在GPL v.3下发布。