我有一个网站,用户可以从输入表单中搜索文本文件。该网站将搜索发布到服务器,在该服务器中执行 type命令。转义正则表达式解析用户输入
日志文件包含特殊字符,例如`[(和某些字符“破发”的grep的功能,有没有,如果用户想应该是能够搜索他们。
的问题是列表在处理数据或内置函数之前需要转义的字符?escapeshellarg
在这种情况下不起作用,我无法在线查找应该转义的字符列表
我有一个网站,用户可以从输入表单中搜索文本文件。该网站将搜索发布到服务器,在该服务器中执行 type命令。转义正则表达式解析用户输入
日志文件包含特殊字符,例如`[(和某些字符“破发”的grep的功能,有没有,如果用户想应该是能够搜索他们。
的问题是列表在处理数据或内置函数之前需要转义的字符?escapeshellarg
在这种情况下不起作用,我无法在线查找应该转义的字符列表
由于您使用的是PHP,请使用preg_match('/patern/', $str);
。
要为正则表达式转义字符串,请使用preg_quote($str)
'preg_match'没有'replacement'参数,即'preg_replace'。 – Barmar 2014-09-23 08:12:09
你为什么使用'shell_exec'?使用PHP内置的'preg_match',并使用'preg_quote'来转义输入。 – Barmar 2014-09-23 08:09:36
这些文件非常庞大,而且PHP比grep慢得多 – dukevin 2014-09-23 08:10:28
您可以在调用'escapeshellarg'前尝试使用'preg_quote'。但是由于PHP的regexp与grep不同,可能会有一些不兼容的地方。 – Barmar 2014-09-23 08:11:39