0

我有一个网站需要替换近 400 个此类字符串(跨越数十个或数百个文件)

$_POST['some_text_here']

有了这个

mysql_real_escape_string($_POST['some_text_here'])

这里的关键是我也想添加结束括号,否则这将是一个微不足道的搜索和替换。

我是正则表达式的新手,所以我什至不知道在替换中间留下文本(特别是'some_text_here')时是否可以进行搜索和替换。

如果这有所作为,我正在为此使用 PHPStorm。

4

2 回答 2

1

像这样的东西应该工作:

(\$_POST\['[^']*'\])

然后用这样的东西替换

mysql_real_escape_string($1)

代码:

preg_replace ( '($_POST\\[\'[^\']\'\\])', 'mysql_real_escape_string($1)', 'file contents go here' )

未测试

于 2013-02-11T21:45:57.717 回答
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

于 2013-02-11T21:34:55.833 回答