PHPプログラミングでは、文字列置換を扱うときに正規表現関数を使用することがよくあります。多くの開発者は、 MB_EREGI_REPLACE関数を聞いたことがあるかもしれませんが、実際にはケースに依存しないことを知っていますか?これは、通常のモードのケースの問題に重要な影響を及ぼします。
MB_EREG_REPLACEは、マルチバイト文字列のPHPで使用される定期的な交換機能です。その特性はケース非感受性であり、 MB_EREG_REPLACE (症例感受性)とは鋭い対照です。ここでの「私」は「ケースを無視する」を表します。
関数の定義形式は次のとおりです。
mb_eregi_replace($pattern, $replacement, $string, $option = "msr")
$パターンは正規表現パターンであり、追加のケース修飾子iを必要としません。
$の交換は交換コンテンツです。
$文字列はターゲット文字列です。
$オプションはマッチングパターンであり、カスタマイズできます。
従来のpreg_replace関数では、ケースを無視したい場合は、正規表現の最後にi修飾子を追加する必要があります。
preg_replace('/php/i', 'PHP', 'I love Php');
結果は、すべてのケース「PHP」を置き換えます。
ただし、 MB_EREGI_REPLACEは、 Iを追加せずに上品および小文字を無視するために生まれます。
<?php
$original = "Hello Mb_EreGi_ReplAce Function!";
$result = mb_eregi_replace("mb_eregi_replace", "mb_eregi_replace", $original);
echo $result;
?>
入力がMB_EREGI_REPLACE 、 MB_EREGI_REPLACE 、またはMB_EREGI_REPLACEであるかどうかにかかわらず、正しい一致に置き換えることができます。
<?php
$text = "Visit https://m66.net for more info.";
$pattern = "M66.NET";
$replacement = "example.com";
// 使用 mb_eregi_replace 症例の鈍感な交換
$result = mb_eregi_replace($pattern, $replacement, $text);
echo $result;
?>
出力:
Visit https://example.com for more info.
$パターンは大文字であり、 $テキストのURLは小文字ですが、それでも正常に一致しています。
URL、メールボックス、ファイルパスなどを扱う場合、ケースの感度は膨大です。特に、マルチバイト文字を使用する場合、通常の通常の関数を使用すると、文字化けのコードや一致する障害を引き起こす可能性があります。
MB_EREGI_REPLACEは、内部および小文字を無視しながら、内部的にマルチバイトセーフマッチングメカニズムを使用し、エンコード作業を簡素化します。
MB_EREGI_REPLACEは、ケースに依存しないマルチバイトの通常の交換機能です。
Iモディファイアを手動で追加する必要はありません。
マルチバイト文字列とケースに伴う無意味の交換要件の処理に適しています。
URLドメイン名を置き換えるとき、ドメイン名のケースについて心配する必要はありません。
次回PHPで定期的な交換を使用するときは、ケースの問題によって引き起こされる障害の一致を避けるために、合理的に関数を選択することを忘れないでください。 MB_EREGI_REPLACEはあなたに多くのトラブルを救うことができます。