在没有PECL扩展的PHP5中获取本地文件的MIME类型?

时间:2008-09-09 02:07:26

标签: php mime

mime_content_type()已被弃用。

如何使用MIME type查找本地文件的PHP5但不使用此弃用方法或PECL fileinfo扩展程序?

编辑:这就是我所害怕的。不幸的是,他们弃用了一个内置函数,而不是那个需要一个并不总是可用的扩展的函数。

2 个答案:

答案 0 :(得分:1)

如果您不能使用fileinfo扩展名,并且您不想使用mime_content_type,则您的选项会受到限制。

您很可能需要根据文件扩展名进行查找。 mime_content_type做了一些更聪明的事情,实际上在文件中寻找特殊数据来确定mime类型。

答案 1 :(得分:0)

getID3()库是一种快速简便的工作方式 - 大部分时间选项。最初以获取MP3 ID3数据的项目命名,该库比其他两个方面做得更多,并且非常方便用于各种常见或奇数文件元数据任务。

我用它来获取在线图片和视频工具的MIME类型的文件。在我完成的所有测试中,我没有看到getID3错误的MIME类型。

我还用它来检查QuickTime视频是否有流式提示。我提到这是多功能性的一个例子。

第二个更耗时的选项是按照建议推送自己的MIME类型检查器。如果你有一个MIME魔术文件,你可以通过比较文件数据的前n个字节与从MIME魔术文件派生的第一个n字节到MIME类型查找表,进一步查找文件扩展名。

典型的MIME魔术文件将包含超过500组MIME类型,这可能导致比较缓慢(需要进行大量检查)。在家庭滚动解决方案中对10种最常见的MIME类型检查进行硬编码将对此有所帮助。

相关问题