関数の概要
PHPの mb_ereg_replace 関数は、マルチバイト文字列に対して正規表現を使った置換処理を行うための関数です。UTF-8や日本語などのマルチバイト文字を安全に扱うことができ、通常の ereg_replace 関数では対応できない文字コードでも使えます。この関数を使うことで、多言語対応のWebアプリケーションでの文字列操作が簡単に行えます。
パラメータの説明
pattern:置換に使う正規表現パターンを指定します。これはマルチバイト対応の正規表現形式で書きます。replacement:置換後の文字列を指定します。正規表現のサブパターンなども使用可能です。string:対象となる入力文字列です。マルチバイト文字列を含めて指定します。
戻り値
置換処理が成功すると、置換後の新しい文字列を返します。置換対象パターンにマッチしなかった場合は入力文字列がそのまま返されます。失敗時は FALSE を返すことがありますので、結果が期待通りか確認すると良いでしょう。
使用例
基本的な使い方
<?php
$input = "今日は2024年6月です。";
$output = mb_ereg_replace("[0-9]+", "★", $input);
echo $output; // 今日は★年★月です。
?>
数字部分をすべて「★」に置き換えています。マルチバイト含む文字列に正規表現でマッチした部分だけを変更できます。
日本語の特定パターン置換
<?php
$text = "東京に行きました。大阪にも行きました。";
$result = mb_ereg_replace("大阪", "京都", $text);
echo $result; // 東京に行きました。京都にも行きました。
?>
特定のマルチバイト文字列「大阪」を「京都」に置換しています。日本語の文字列も問題なく扱えます。
複数パターンの置換(正規表現利用)
<?php
$text = "cat dog bird";
$newtext = mb_ereg_replace("(cat|dog)", "animal", $text);
echo $newtext; // animal animal bird
?>
複数のパターンをまとめて置換できるので効率的です。ここでは「cat」または「dog」を「animal」に置き換えています。
関連する関数
mb_ereg– マルチバイト対応の正規表現マッチングmb_ereg_match– 文字列全体がパターンに一致するか判定mb_ereg_search– マルチバイト正規表現検索mb_ereg_replace_callback– 置換処理をコールバック関数で行う
まとめ
mb_ereg_replace はマルチバイト文字列を正規表現で置換したい場合に非常に便利なPHP関数です。特に日本語やUTF-8の文字を含む文字列を扱うときに、安全にパターンマッチと置換を実現できます。正規表現を活用すれば、複雑な文字列処理も簡単に行えるので、マルチバイト対応が必要な場合はぜひ活用してみてください。
