php preg_replace コードの文字化けの問題
コードで話しましょう:
?
$pattern = "/ (href|src)=['|"]http://(w*.?mysite.com)/([^?'"]*)['|"]/i" ;
$repl = " 1='http://2/3?p=faskdfkasdkf'";
$result="中国人";
$result = preg_replace($pattern, $repl, $result);
echo $result;
上記のコードの機能については説明しません。ご自身で実行してください。
?
実行後、文字化けが発生していることがわかります。データを確認すると、$repl が正しく記述されていないことがわかります。正しい形式は次のとおりです。
?
$repl = " \1='http://\2/\3?p=faskdfkasdkf'";
?
もう 1 つ注意しなければならない点: mb_ereg_replace は同時実行条件下でメモリ リークを起こし、ストレス テストの失敗を引き起こします。