さて問題です。
ある「¥」を含む文字列 (例:[¥]) を置換して、[¥¥] にしたいと思っています。
#あえて、¥は全角で書いていますが、実際には半角です。
そこで、それっぽい置換を4つほど書いてみました。
$original = "[¥¥]";
$a = str_replace("¥¥", "¥¥¥¥", $original);
$b = mb_ereg_replace("¥¥¥¥", "¥¥¥¥¥¥¥¥", $original);
$c = mb_ereg_replace("¥¥¥¥", "¥¥¥¥", $original);
$d = mb_ereg_replace('¥¥', "¥¥¥¥", $original);
print "a= $a¥n";
print "b= $b¥n";
print "c= $c¥n";
print "d= $d¥n";
さて、期待している置換をしてくれるのは、$a ~ $d のうち、どれでしょう。
出力結果
a= [¥¥]
b= [¥¥¥¥]
c= [¥¥]
d=
ちなみに、d ですが、
Warning: mb_ereg_replace(): mbregex compile err: end pattern at escape in question.php・・・
と、エラーを出していました。
正解しました?
で、なぜこうなってしまうか、わかりますか?
・・・なんてことはない、私がはまったんです。
$c って、分かれば納得もするけど、ぱっと見、置換しないように見えるよなー(笑)