从字符串确定脚本语言
我已经写了一个通用的文件系统查看器在PHP中,我想添加上下文高亮。 Geshi看起来不错,但似乎需要我以我想突出显示代码的语言发送。从字符串确定脚本语言
有关如何根据内容和/或位置确定给定文件的脚本语言的任何现有方法?
我从MIME类型:
$finfo = finfo_open(FILEINFO_MIME_TYPE);
$mime_type = @finfo_file($finfo, $full_path);
,让我知道它的文本,至少(我允许非文本的下载太)。
我在想,解析砰线/文件扩展名或寻找像PHP这样的简单标签会让我有很多东西像perl/shell scripts/php。
我也有文件的路径,因为这些文件是直接从源服务器传出的,所以基于路径的规则可能适用于像/etc/httpd/conf.d/*,/ etc/passwd这样的东西。
完美的准确性并不是一个真正的问题,因为我会允许用户覆盖用于语法的语言。我只是想提供一个低开销的教育猜测,从头开始写这个。
另一个警告。其中一些文件可能大于150MB,因此我只想读取文件的一部分,但如果需要的话,我可以关闭大文件的此功能。
如果您可以调用外部程序,请尝试使用Linux file命令。
是的,我可以。这让我感到兴奋的线条解析。好的开始。 –
你知道我已经解雇了'文件'的能力,只不过是什么样的MIME类型会给我,但是,我只是测试这个,它很好。其实..无法检测perl脚本作为perl在Windows安装的FS。 –
错误识别的perl脚本是否以爆炸线开始? –
为什么你不看文件的扩展名? – str