mb_eregi_replace
(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)
mb_eregi_replace — マルチバイト文字列に大文字小文字を区別せずに正規表現による置換を行う
説明
mb_eregi_replace(
string
string
string
?string
): string|false|null
string
$pattern
,string
$replacement
,string
$string
,?string
$options
= null
): string|false|null
string
において、
正規表現 pattern
にマッチする文字列を
replacement
に置換します。
パラメータ
pattern
-
正規表現パターン。マルチバイト文字を使用できます。 大文字小文字は区別しません。
replacement
-
置換する文字列。
string
-
検索対象となる文字列。
options
- 検索オプション。説明は、mb_regex_set_options() を参照ください。
戻り値
結果の文字列、あるいはエラー時に false
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 |
options は、nullable になりました。
|
7.1.0 |
この関数は、現在のエンコーディングに照らして string
が正しいかをチェックするようになりました。
|
7.1.0 |
e 修飾子が非推奨になりました。
|
注意
注意:
内部エンコーディングあるいは mb_regex_encoding() で指定した文字エンコーディングを、 この関数の文字エンコーディングとして使用します。
警告
信頼できない入力に対しては、
絶対に e
修正子を使用してはいけません。
(preg_replace() と同様、) 自動的なエスケープは行いません。
このことを忘れていると、自分の書いたアプリケーションにリモートコード実行の脆弱性を作りこんでしまうことになります。
参考
- mb_regex_encoding() - 現在のマルチバイト正規表現用のエンコーディングを取得または設定する
- mb_ereg_replace() - マルチバイト文字列に正規表現による置換を行う
+add a note
User Contributed Notes 2 notes
kirilatpillaxdotcom ¶
12 years ago
To highlight words in multi-byte text:
<?php
$s = 'Алабала';
$f = 'а';
echo preg_replace('/('.$f.')/iu', '<b>$1</b>', $s);
?>
cat at feelthehouse dot ru ¶
16 years ago
Transliterator for cyrillic-to-latin letters for UTF chars:
<?php
function do_translit($st) {
$replacement = array(
"й"=>"i","ц"=>"c","у"=>"u","к"=>"k","е"=>"e","н"=>"n",
"г"=>"g","ш"=>"sh","щ"=>"sh","з"=>"z","х"=>"x","ъ"=>"\'",
"ф"=>"f","ы"=>"i","в"=>"v","а"=>"a","п"=>"p","р"=>"r",
"о"=>"o","л"=>"l","д"=>"d","ж"=>"zh","э"=>"ie","ё"=>"e",
"я"=>"ya","ч"=>"ch","с"=>"c","м"=>"m","и"=>"i","т"=>"t",
"ь"=>"\'","б"=>"b","ю"=>"yu",
"Й"=>"I","Ц"=>"C","У"=>"U","К"=>"K","Е"=>"E","Н"=>"N",
"Г"=>"G","Ш"=>"SH","Щ"=>"SH","З"=>"Z","Х"=>"X","Ъ"=>"\'",
"Ф"=>"F","Ы"=>"I","В"=>"V","А"=>"A","П"=>"P","Р"=>"R",
"О"=>"O","Л"=>"L","Д"=>"D","Ж"=>"ZH","Э"=>"IE","Ё"=>"E",
"Я"=>"YA","Ч"=>"CH","С"=>"C","М"=>"M","И"=>"I","Т"=>"T",
"Ь"=>"\'","Б"=>"B","Ю"=>"YU",
);
foreach($replacement as $i=>$u) {
$st = mb_eregi_replace($i,$u,$st);
}
return $st;
}
?>