从字符串确定脚本语言

时间:2011-10-29 17:28:06

标签: php scripting syntax-highlighting

我在php中编写了一个通用文件系统查看器,我想添加上下文突出显示。 Geshi看起来很不错,但似乎要求我发送我想突出显示代码的语言。

有关如何按内容和/或位置确定给定文件的脚本语言的任何现有方法?

我有以下的mime类型:

$finfo = finfo_open(FILEINFO_MIME_TYPE); 
$mime_type = @finfo_file($finfo, $full_path );

这让我至少知道它的文字(我也允许下载非文字)。

我认为解析bang行/文件扩展名或寻找像php这样的简单标签会让我在perl / shell scripts / php之类的方式中占据很大的一部分。

我还有文件的路径,因为这些文件直接来自源服务器,因此基于路径的规则可能适用于/etc/httpd/conf.d/*,/etc/passwd.

完美的准确性并不是真正的问题,因为我将允许用户覆盖用于语法的语言。我只想提供一个低开销的教育猜测,而不是从头开始编写。

另一个警告。其中一些文件可以是> 150mb因此我只想阅读部分文件,但如果需要我可以关闭大文件的这个功能。

2 个答案:

答案 0 :(得分:1)

如果您可以呼叫外部程序,请尝试使用Linux file命令。

答案 1 :(得分:0)

我很惊讶没有人从谷歌代码中指出prettify.js。客户端可能会做我需要的一切。