現在の位置: ホーム> 最新記事一覧> MB_EREGI_REPLACEを使用してテキストを強調表示します(<mark>タグ付き)

MB_EREGI_REPLACEを使用してテキストを強調表示します(<mark>タグ付き)

M66 2025-06-02

PHPでマルチバイト文字列を処理する場合、多くの場合、ケースと感受性の置換操作が必要です。 MB_EREGI_REPLACEは非常に実用的な機能であり、症例感受性のない正規表現置換を実装するために使用できます。これは、中国語などのマルチバイトキャラクターに特に適しています。この記事では、 MB_EREGI_REPLACE関数とHTML <mark>タグを組み合わせて、テキストのキーワードにハイライト効果を追加する方法を紹介します。


1。MB_EREGI_REPLACEとは何ですか?

MB_EREGI_REPLACEは、PHPのマルチバイト文字列関数の1つであり、その機能は、ケースに依存しない定期的な交換を実行することです。その構文は次のとおりです。

 mb_eregi_replace(string $pattern, string $replacement, string $string, ?string $option = null): string
  • $パターン:一致する正規表現(ケースの鈍感)

  • $の交換:交換された文字列

  • $文字列:検索されている文字列

  • $オプション:一致する動作を制御するオプションパラメーター

マルチバイトキャラクターをサポートし、中国語、日本、韓国語、その他の言語でのテキスト処理に適しています。


2。 <mark>タグでキーワードを強調表示する原則

HTML5 <mark>タグは、強調表示する必要があるテキストをマークするために特別に使用されます。ブラウザは、黄色の背景を使用してマークされたコンテンツをデフォルトで表示します。これは、キーワードのハイライトに非常に適しています。

例えば:

 これはです <mark>ハイライト</mark> の言葉。

「ハイライト」という言葉は、黄色の背景を持つページに表示されます。


3。MB_EREGI_REPLACEを組み合わせてキーワードの強調表示を実現するコードの例

以下は、 MB_EREGI_REPLACEを使用して指定されたキーワードを<mark>タグでラップする方法を示すサンプルコードです。

 <?php
// サンプルテキスト
$text = "PHP 非常に人気のあるサーバー側のスクリプト言語です。PHP 複数のプログラミングパラダイムをサポートします。";

// 需要ハイライト的关键词(複数になる可能性があります,使用|分離)
$keywords = "php|サーバー側";

// 正規表現を構築します,使ブラケットを使用して、キーワード自体をキャプチャします,ケースを無視します
$pattern = "(" . $keywords . ")";

// 使使用 mb_eregi_replace ケースに依存しない交換を行います,キーワードを追加します <mark> ラベル
$highlightedText = mb_eregi_replace(
    $pattern,
    "<mark>\\1</mark>",
    $text
);

// 输出ハイライト后的文本
echo $highlightedText;
?>

実行結果の例:

 <mark>PHP</mark> とても人気があります<mark>サーバー側</mark>スクリプト言語。<mark>PHP</mark> 複数のプログラミングパラダイムをサポートします。

このようにして、ページ上のキーワードパーツは<mark>タグでラップされ、それによりハイライトが実現されます。


4。注意すべきこと

  • MB_EREGI_REPLACEのマッチングはケースに依存しないものであり、ファジーマッチングキーワードが必要なシナリオに適しています。

  • 正規表現のキーワードは、パイプ文字で分離する必要があります| 「または」の関係を表す。

  • キーワードに特殊文字が含まれている場合、定期的なマッチングに影響を与えないように、まず逃げる必要があります。

  • マルチバイト文字列処理が正しいことを確認するには、PHP環境でMBSTRING拡張機能が有効になっていることを確認してください。


5。実際のURL例と組み合わせた

次のサンプルWebアドレスがあり、いくつかのキーワードを置き換える必要があるとします。

 <?php
$text = "公式ウェブサイトをご覧ください https://m66.net/ もっと詳しく知る。";

// ハイライト “m66.net”
$keywords = "m66\\.net";

$pattern = "(" . $keywords . ")";

$highlightedText = mb_eregi_replace(
    $pattern,
    "<mark>\\1</mark>",
    $text
);

echo $highlightedText;
?>

実行後、「M66.NET」が強調表示されます。


上記の紹介により、 MB_EREGI_REPLACE<MARK>タグを簡単に使用して、テキストのキーワードにハイライト効果を追加して、コンテンツの読みやすさとユーザーエクスペリエンスを改善できます。