PHPでマルチバイト文字列を処理する場合、 MB_EREGI_REPLACE関数は非常に実用的なツールです。文字列の正規表現を交換するために使用でき、上限と小文字を無視しながらマルチバイトエンコードをサポートします。この記事では、 MB_EREGI_REPLACE関数を使用して、テキストの新しいライン文字( \ r \ n 、 \ r 、 \ nを含む)をHTML <br>のNewLineタグに置き換える方法を紹介し、WebページにNewline Effectを正しく表示します。
HTMLでは、通常のラインブレークはブラウザによってラインブレーク効果にレンダリングされません。 <br>タグのみがテキストラインブレークを効果的にすることができます。したがって、ユーザー入力またはファイルから取得した文字列にNewLine文字が含まれ、Webページに直接出力されている場合、テキストはNewlineのない行のように見えます。 NewLinesを<br>タグに置き換えることは、そのようなテキストを処理するための一般的な要件です。
MB_EREGI_REPLACEは、PHPのマルチバイト文字列の定期的な交換機能であり、その関数の署名は次のとおりです。
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$パターン:一致する正規表現パターン(ケース非感受性)。
$の交換:交換された文字列。
$文字列:文字列を入力します。
$オプション:オプションの通常のオプション、デフォルトは「MSR」です。
次の例は、 MB_EREGI_REPLACEを使用して<br>に新しいラインを置き換える方法を示しています。
<?php
// エンコードをに設定します UTF-8
mb_internal_encoding("UTF-8");
// 保留中のテキスト
$text = "これが最初の行です。\r\nこれは2行目です。\nこれは3行目です。\rこれは4行目です。";
// 使用 mb_eregi_replace Newline文字を交換します
$converted = mb_eregi_replace("\r\n|\r|\n", "<br>", $text);
// 出力結果
echo $converted;
?>
正規表現\ r \ n | \ r | \ nMatchすべてのタイプの新しいライン文字:
Windowsスタイルのラインブレーク: \ r \ n
Mac OSのラインブレーク(古いバージョン): \ r
Unix/Linuxラインブレーク: \ n
<br>に置き換えて、Webページが出力されたときにラインが正しく表示できるようにします。
PHP環境でMBSTRING拡張機能が有効になっていることを確認してください。そうしないと、 MB_EREGI_REPLACEは使用されません。
MB_EREGI_REPLACEはケースに敏感で、NewLine文字には影響しませんが、他の文字置き換えに役立ちます。
英語と通常の文字のみを処理する場合は、代わりにpreg_replaceを使用することもできますが、 MB_EREGI_REPLACEはマルチバイト文字をよりよくサポートします。
MB_EREGI_REPLACEを使用して、ラインブレーク文字を<br>に置き換えることは、マルチバイト文字列のラインブレークの表示を実現する良い方法であり、中国などの中国語や日本のキャラクターを含むテキスト処理シナリオに特に適しています。この手法をマスターすると、Webページテキストの表示効果とユーザーエクスペリエンスが向上する可能性があります。