用PHP检测文件的MIME类型非常简单--只需使用PEAR的类型包、PHP的文件信息或在Unix机器上调用file -i即可。这对于二进制文件和所有其他具有某种“神奇字节”的文件非常有效,通过这些字节可以很容易地检测到它们。
我失败的是检测到正确的MIME类型的纯文本文件:
所有这些都被识别为“文本/普通”,这是正确的,但对我来说太不具体了。我需要真正的类型,即使分析文件内容需要花费一些时间。
那么,我的问题是:存在哪些解决方案来检测此类纯文本文件的MIME类型?有图书馆吗?代码片段?
注意,我既没有文件名,也没有文件扩展名,但是我有文件内容。
如果我使用红宝石,我可以集成github语言学家。Ohloh的奥科特是用C编写的,但是有一个命令行工具来检测类型:ohcount -d $file
我试过的
奥科特
正确检测xml和php文件,所有其他文件都不正确。
阿帕奇蒂卡
检测到xml和html时,所有其他测试文件都只被视为text/plain。
发布于 2012-05-25 11:02:34
因为我没有找到合适的库,所以我编写了自己的魔术文件来正确地检测我的所有测试文件。
我的应用程序首先尝试我的自定义魔术文件进行检测,如果没有检测到类型,则返回到普通/系统魔术文件。
github上的代码,请参阅PlainDetect。该魔术文件位于数据/程序.魔术,可与file -f programming.magic /path/to/source一起使用。
发布于 2012-05-08 19:28:31
我认为来自Apache Tika的神奇检测可以帮助你:
http://tika.apache.org/
发布于 2012-05-08 20:06:18
如何:
body {、html {或body, html {的东西。您也可以尝试来自CSS的关键字,如font-family、background、border等。INSERT INTO、UPDATE (.*) SET、CREATE TABLE等的东西,再次查找关键字。对于其他人,我不认识他们。
https://stackoverflow.com/questions/10505056
复制相似问题