标签: php regex validation escaping
我有一个网站,用户可以从输入表单中搜索文本文件。该网站将搜索发布到服务器,在该服务器上执行shell_exec grep -E "^(LOG|DATE)+.$query"类型命令。
shell_exec grep -E "^(LOG|DATE)+.$query"
日志文件包含特殊字符,如`[(如果用户希望能够搜索它们。
问题是某些字符会“破坏”grep功能。在处理数据或内置函数之前是否需要转义的字符列表? escapeshellarg在这种情况下不起作用,我在网上找不到应该转义的字符列表
escapeshellarg
答案 0 :(得分:0)
由于您使用的是PHP,请使用preg_match('/patern/', $str); 要使用正则表达式转义字符串,请使用preg_quote($str)
preg_match('/patern/', $str);
preg_quote($str)