Bei der PHP -Programmierung verwenden wir häufig regelmäßige Expressionsfunktionen, wenn es um die Substitution der String geht. Viele Entwickler haben vielleicht von der Funktion mb_eregi_replace gehört, aber wissen Sie, dass es tatsächlich Fall-unempfindlich ist? Dies hat einen wichtigen Einfluss auf Fallprobleme im regulären Modus.
mb_ereg_replace ist eine regelmäßige Ersatzfunktion, die in PHP für Multi-Byte-Zeichenfolgen verwendet wird. Sein Merkmal ist Fall-unempfindlich , was in scharfem Kontrast zu MB_EREG_REPLACE (Fallempfindlichkeit) steht. Das "I" hier repräsentiert "ignorieren Sie den Fall", was bedeutet, dass der obere und untere Fall ignoriert wird.
Die Definitionsform der Funktion lautet wie folgt:
mb_eregi_replace($pattern, $replacement, $string, $option = "msr")
$ muster ist ein reguläres Ausdrucksmuster und erfordert keinen zusätzlichen Fallmodifikator i .
$ Ersatz ist der Ersatzinhalt.
$ String ist die Zielzeichenfolge.
$ option ist ein passendes Muster und kann angepasst werden.
Wenn Sie in der herkömmlichen Funktion PREG_REPLACE den Fall ignorieren möchten, müssen Sie zum Beispiel einen I -Modifikator am Ende des regulären Ausdrucks hinzufügen:
preg_replace('/php/i', 'PHP', 'I love Php');
Das Ergebnis ersetzt alle Fall "PHP".
MB_Eregi_Replace wird jedoch geboren, um das obere und untere Fall zu ignorieren, ohne i hinzuzufügen, zum Beispiel:
<?php
$original = "Hello Mb_EreGi_ReplAce Function!";
$result = mb_eregi_replace("mb_eregi_replace", "mb_eregi_replace", $original);
echo $result;
?>
Unabhängig davon, ob die Eingabe mb_eregi_replace , mb_eregi_replace oder mb_eregi_replace ist, kann er durch die richtige Übereinstimmung ersetzt werden.
<?php
$text = "Visit https://m66.net for more info.";
$pattern = "M66.NET";
$replacement = "example.com";
// verwenden mb_eregi_replace Fall unempfindlicher Ersatz
$result = mb_eregi_replace($pattern, $replacement, $text);
echo $result;
?>
Ausgabe:
Visit https://example.com for more info.
Beachten Sie, dass $ Muster Großbuchstaben und die URL in $ Text in Kleinbuchstaben ist, aber immer noch erfolgreich übereinstimmt.
Beim Umgang mit URLs, Postfächern, Dateipfaden usw. ist die Fallempfindlichkeit enorm. Insbesondere bei der Verwendung eines Multi-Byte-Zeichens kann die Verwendung einer normalen regulären Funktion zu einem verstümmelten Code oder einem steigenden Ausfall führen.
mb_eregi_replace verwendet einen multi-byte-sicheren Matching-Mechanismus intern, während er den oberen und unteren Fall ignoriert und die Codierungsarbeiten vereinfacht.
MB_Eregi_Replace ist eine von Fall unempfindliche Multi-Byte-Ersatzfunktion.
Es ist nicht nötig, einen I -Modifikator manuell hinzuzufügen.
Geeignet für den Umgang mit Multibyte-Saiten und nichtempfindlichen Ersatzanforderungen.
Beim Ersetzen von URL -Domainnamen müssen sich nicht über den Fall des Domain -Namens sorgen.
Wenn Sie das nächste Mal einen regelmäßigen Ersatz in PHP verwenden, denken Sie daran, Funktionen vernünftig auszuwählen, um zu vermeiden, dass übereinstimmende Fehler durch Fallprobleme verursacht werden. mb_eregi_replace kann Ihnen viel Ärger ersparen.