我有一个网站,我需要替换近400种这样的字符串(跨数十或数百个文件)
$_POST['some_text_here']
用这个
mysql_real_escape_string($_POST['some_text_here'])
这里的关键是我想要添加结束括号,否则这将是一个简单的搜索和替换。
我是正则表达式的新手,所以我甚至不知道在替换的中间留下文本(特别是'some_text_here')是否可以进行搜索和替换。
如果有所作为,我正在使用PHPStorm。
答案 0 :(得分:1)
这样的事情应该有效:
(\$_POST\['[^']*'\])
然后用这样的东西替换
mysql_real_escape_string($1)
代码:
preg_replace ( '($_POST\\[\'[^\']\'\\])', 'mysql_real_escape_string($1)', 'file contents go here' )
未经过测试
答案 1 :(得分:0)
我认为,正则表达式不是你想要的......你宁愿想要这样的东西:
foreach ($_POST as $key => $value) {
$_POST[$key] = mysql_real_escape_string($value);
}
正则表达式..
\$_POST\['([a-zA-Z0-9_-]+)'\]
替换 - 像这样:
mysql_real_escape_string\(\$_POST\['$1'\]\)
顺便说一下:mysql_ *已弃用且不应再使用了 - 请改用mysqli_或PDO