在没有 PECL 扩展的 PHP5 中获取本地文件的 MIME 类型?
Posted
技术标签:
【中文标题】在没有 PECL 扩展的 PHP5 中获取本地文件的 MIME 类型?【英文标题】:Get MIME type of a local file in PHP5 without a PECL extension? 【发布时间】:2010-09-08 05:51:09 【问题描述】:mime_content_type()
已弃用。
如何使用 php5
但不使用这种已弃用的方法或 PECL fileinfo
扩展名找到本地文件的 MIME type
?
编辑:这就是我害怕的。不幸的是,他们弃用了内置函数,转而使用需要扩展但并不总是可用的函数。
【问题讨论】:
【参考方案1】:如果您不能使用 fileinfo 扩展名,并且您不想使用 mime_content_type,那么您的选择是有限的。
您很可能需要根据文件扩展名进行查找。 mime_content_type 做了一些更智能的事情,实际上是在文件中查找特殊数据来确定 mime 类型。
【讨论】:
【参考方案2】:getID3() 库是一个快速且简单的工作时间最多的选项。最初以获取 MP3 ID3 数据的项目命名,该库的功能远不止于此,而且对于各种常见或奇怪的文件元数据任务非常方便。
我用它来获取在线图像和视频工具的 MIME 类型的文件。在我完成的所有测试中,我没有看到 getID3 错误地获取 MIME 类型。
我还用它来检查 QuickTime 视频是否有流媒体提示。我提到这是多功能性的一个例子。
第二个更耗时的选项是滚动您自己的 MIME 类型检查器,如已建议的那样。如果您有一个 MIME 魔术文件,则可以通过将文件数据的前 n 个字节与从您的 MIME 魔术文件派生的 MIME 类型查找表进行比较来比查找文件扩展名更进一步。
一个典型的 MIME 魔术文件将包含超过 500 组 MIME 类型,这可能会导致比较缓慢(需要进行大量检查)。在您的家庭滚动解决方案中硬编码 10 种最常见的 MIME 类型检查将对此有所帮助。
【讨论】:
以上是关于在没有 PECL 扩展的 PHP5 中获取本地文件的 MIME 类型?的主要内容,如果未能解决你的问题,请参考以下文章
php5.6配置oracle数据库扩展 oci8(windows7系统64位)