在php中识别文件类型的最佳方法

LuR*_*RsT 7 php file-type

在php中发现文件文件类型的最佳方法是什么?我听说浏览器可能会被欺骗,那么更好的方法是什么呢?

Car*_*rlo 11

您可以使用finfo_file

<?php
echo finfo_file(finfo_open(FILEINFO_MIME), "foo.png");
?>
Run Code Online (Sandbox Code Playgroud)


Lui*_*tti 5

我想你的意思是finfo_file()来发现 mimetype

来自 php.net 示例:

<?php
$finfo = finfo_open(FILEINFO_MIME); // return mime type ala mimetype extension
foreach (glob("*") as $filename) {
    echo finfo_file($finfo, $filename) . "\n";
}
finfo_close($finfo);
?>
Run Code Online (Sandbox Code Playgroud)


sta*_*zel 5

看看"神奇数字".文件的前几个字节通常标识它是什么类型的文件.例如,GIF的几个字节是47 49 46 38 37 61或47 49 46 38 39 61,GIF89a或GIF87a的ASCII.还有许多其他的"神奇数字".见http://en.wikipedia.org/wiki/Magic_number_(programming)#Magic_numbers_in_files

编辑:我相信这比PHP上的MIME函数更可靠.