gpt4 book ai didi

php - 使用 PHP 确定文件类型。什么是魔法数据库?

转载 作者:可可西里 更新时间:2023-11-01 13:18:26 24 4
gpt4 key购买 nike

我正在尝试确定某些文件是否真的是图像(使用 PHP)。有人建议我使用 finfo,我正在尝试了解它的工作原理。

我不明白的是 - 什么是魔数(Magic Number)数据库,它是如何工作的?我有点困惑 - 每个文件是否都有特定的“魔数(Magic Number)”,您可以将其与该数据库进行比较?

另外 - 我在我的 debian squeeze 上有它 - 但它也可以在 WIN 平台上使用吗?还是必须将该数据库与应用程序一起附加?

<?php
$finfo = new finfo(FILEINFO_MIME, "/usr/share/misc/magic.mgc");
if (!$finfo) {
echo "Opening fileinfo database failed";
exit();
}

/* get mime-type for a specific file */
$filename = "/usr/local/something.txt";
echo $finfo->file($filename);

?>

最佳答案

大多数文件格式都有一个 header ,可帮助识别文件的类型。例如,GIF 文件始终以 GIF87

开头

魔数(Magic Number)数据库是所有 header 的列表,并允许 finfo() 识别文件。

Windows 默认没有安装这个数据库。你需要把它带到 window 上。事实上,无论部署在哪里,都应该使用相同的数据库,以提高跨平台兼容性。想象一下,如果您部署到一个不知道您的开发平台可以理解的文件类型的旧系统。

关于php - 使用 PHP 确定文件类型。什么是魔法数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com