平成30/ 2018-10-23 19:49
PHP/ REPLACE

|
| マルチバイト対応
|----------
str_replace()で問題ないみたい。

echo str_replace("あ", "い", "あいう");
-
いいう


|
| 配列で一括置換
|----------
        $before = preg_replace("/\n/u", "", trim("
がぎぐげご
ざじずぜぞ
だぢづでど
ばびぶべぼ
ぱぴぷぺぽ
ゐゑ
"));
        // 1文字ごとの配列にする
        $before = preg_split("//u", $before, -1, PREG_SPLIT_NO_EMPTY);

        // 正規表現の置換ルールを配列に格納する
        foreach($before as $k => $v){
            $before[$k] = "/{$v}/u";
        }

        $after = preg_replace("/\n/u", "", trim("
かきくけこ
さしすせそ
たちつてと
はひふへほ
はひふへほ
いえ
"));
        $after = preg_split("//u", $after, -1, PREG_SPLIT_NO_EMPTY);

// 一括置換
print_r(preg_replace($before, $after, $_));


|
| 以下のように回数指定して置換できる。
|----------
echo preg_replace("/a/u", "", $where["rec"], 1);


// 置換にマルチバイト用のものは無い。
なので、複雑な場合は、preg_replace() を利用し、


日本語の置換ではない簡素な置換の場合は、
str_replace()を使いましょう。正規表現は負荷かかるので、、


str_replace("置換前", "置換後" , "置換前です。");
// 「置換後です。」になる