首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何检测纯文本文件的MIME类型: CSS、Javascript、ini、sql?

如何检测纯文本文件的MIME类型: CSS、Javascript、ini、sql?
EN

Stack Overflow用户
提问于 2012-05-08 19:20:08
回答 4查看 4K关注 0票数 8

用PHP检测文件的MIME类型非常简单--只需使用PEAR的类型包、PHP的文件信息或在Unix机器上调用file -i即可。这对于二进制文件和所有其他具有某种“神奇字节”的文件非常有效,通过这些字节可以很容易地检测到它们。

我失败的是检测到正确的MIME类型的纯文本文件:

  • CSS
  • 比较
  • INI (配置)
  • Javascript
  • rST
  • SQL

所有这些都被识别为“文本/普通”,这是正确的,但对我来说太不具体了。我需要真正的类型,即使分析文件内容需要花费一些时间。

那么,我的问题是:存在哪些解决方案来检测此类纯文本文件的MIME类型?有图书馆吗?代码片段?

注意,我既没有文件名,也没有文件扩展名,但是我有文件内容。

如果我使用红宝石,我可以集成github语言学家。Ohloh的奥科特是用C编写的,但是有一个命令行工具来检测类型:ohcount -d $file

我试过的

奥科特

正确检测xml和php文件,所有其他文件都不正确。

阿帕奇蒂卡

检测到xml和html时,所有其他测试文件都只被视为text/plain

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-25 11:02:34

因为我没有找到合适的库,所以我编写了自己的魔术文件来正确地检测我的所有测试文件。

我的应用程序首先尝试我的自定义魔术文件进行检测,如果没有检测到类型,则返回到普通/系统魔术文件。

github上的代码,请参阅PlainDetect。该魔术文件位于数据/程序.魔术,可与file -f programming.magic /path/to/source一起使用。

票数 3
EN

Stack Overflow用户

发布于 2012-05-08 19:28:31

我认为来自Apache Tika的神奇检测可以帮助你:

http://tika.apache.org/

票数 2
EN

Stack Overflow用户

发布于 2012-05-08 20:06:18

如何:

  • .ini检查ini文件,您将使用文件函数。如果ini文件出错,则返回false。
  • .css首先检查您是否找到了类似body {html {body, html {的东西。您也可以尝试来自CSS的关键字,如font-familybackgroundborder等。
  • .sql您可能会找到类似INSERT INTOUPDATE (.*) SETCREATE TABLE等的东西,再次查找关键字。
  • .js For Javascript,您将不得不再次为关键字查找解析所有内容.

对于其他人,我不认识他们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10505056

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档