我为文本类文件(php、python、js源代码)创建了一个简单的扫描器,它获取regexp列表,并从某个目录递归地扫描所有文件/目录。你知道吗
它打开每个文件,读取内容(通常不是很大-我看到的最大值约为10Kb),并调用每个regexp方法re.sub(my_rx_N, my_replace_callback, file_content)
。你知道吗
经过一些测试,我发现我的脚本被卡在了这些文件中的某个普通文件(即没有任何特定的问题/内容/编码)上,它的外观与其他文件不同。你知道吗
我不知道为什么会出现,也许你知道?你知道吗
示例regexp:
((#)([a-zA-Z0-9]*)\2.*)?(<\?php ?(?=(.*<\?php)))?(eval|echo)(\((base64_decode|gzinflate))+\(("|')[a-zA-Z0-9+=/]+\9\)+;( ?\?>(?=(.*<\?php)))?(.*\2/\3\2)?
<\?php(.*)\n(/\*[A-Za-z0-9 .]*\*/)\1?\nob_start\(\);(\1?\n)*\2\3\?>(\1?\n)*
preg_replace\("[]/a-zA-Z[0-9*.+]*/e[a-zA-Z0-9]*"[a-zA-Z0-9"_, (\'.)+;/=?<>]*
/\*([a-zA-Z0-9]+)\*/.+[ ]*[a-zA-Z0-9/\(\)-=;"{}\[\]\\!]+.+[ ]*/\*/\1\*/
(<\?php.?(?=(.*<\?php)))?if[ ]?\(([a-zA-Z0-9]+\()?(.?[$][A-Z_]*)(\["[0-9a-z_\\]*"\])\)[){(]*eval(\(base64_decode)?\(\4(\["[0-9a-z_\\]*"\])[{})(;A-Za-z0-9]*(.?\?>(?=(.*<\?php)))?
我使用的是python2.7。你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐