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 に答える