プロが教える店舗&オフィスのセキュリティ対策術

マルチバイトでの置き換えについて質問です。現在は以下のように
str_replaceで置き換えしており文字化けはないのですがマルチバイト
対応のmb_ereg_replaceで実行したほうがいい事を知りました。

以下現在のソースです。
// 検索文配列
$search = array("{#aaa#}", "{#bbb#}", "{#ccc#}");
// 置き換え文配列
$replace = array("あああ", "いいい", "ううう");
// 置き換え
$str = str_replace($search, $replace, $str);

単純にstr_replaceをmb_ereg_replaceにしてみたのですがエラーに
なってしまいました。

置き換えしたい文字が複数あるのでできれば検索文字、置き換え文字を
配列として使用したいのですがどうすればいいのでしょうか?
ちなみにですが文字コードはutf-8です。

A 回答 (2件)

http://www.php.net/manual/ja/function.str-replac …

をご覧ください。

(正規表現のような) 技巧的な置換ルールを必要としない場合、 <<中略>>この関数を常用するべきです

とあります。また、

注意: この関数はバイナリデータに対応しています。

とあることから、単純な文字列変換にあえてmb_ereg_replaceを
使う意味はありません。(逆に使わない方がただしい)
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
>注意: この関数はバイナリデータに対応しています。
なにかと不安があったのですがおかげさまで自信が持てました!
ありがとうございました!

お礼日時:2009/04/18 18:46

>mb_ereg_replaceで実行したほうがいい事を知りました



そんなことはないと思いますが?
文字列の単純な置き換えであればスピードの面でもstr_replaceを
使うのが正しいと思いますが・・・
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
マルチバイトを考慮したうえでもstr_replaceで問題ないという解釈で
いいのでしょうか?

お礼日時:2009/04/16 12:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!