サブジェクト文字列 'r r' 内のパターン文字列 '/r/' を、'"\\23"' や '[4]' などの所定の置換に置き換えたいと考えています。だから(私のreplacements配列のサブセットのみを示しています)私は試します:
$subject = 'r r';
$replacements = array('"\\23"', '[4]');
$replacements = array_map('preg_quote', $replacements);
print_r($replacements);
foreach($replacements as $replacement){
$subject = preg_replace('/r/', $replacement, $subject, 1);
}
echo $subject;
必要な文字列は '"\\23" [4]' ですが、'"\23" \[4\]' が返されます。これは文字が欠落しており、文字が追加されています。
PHPには、ここで機能するエスケープ機能がありますか? どうすればいいですか?
注: preg_quote 行がない場合、結果は '"" [4]' になります。