In PHP ist die Funktion preg_replace_callback_array ein sehr praktisches Tool, mit dem Sie mehrere reguläre Ausdrücke gleichzeitig anpassen und den passenden Inhalt ersetzen können. Diese Funktion kann den Code erheblich vereinfachen, der mehrere reguläre Ersatzaufgaben gleichzeitig verarbeiten müssen. In diesem Artikel wird erläutert, wie die Funktion preg_replace_callback_array verwendet wird, insbesondere wenn Sie gleichzeitig den Inhalt ersetzen müssen, der mehrere reguläre Ausdrücke entspricht.
Die Funktion PRG_REPLACE_CALLBACK_Array wurde nach PHP 5.3.0 eingeführt. Seine Funktion ähnelt der Funktion preg_replace_callback , unterstützt jedoch gleichzeitig die Verarbeitung mehrerer regulärer Ausdrücke. Sein Funktionsprototyp ist wie folgt:
preg_replace_callback_array(array $patterns, string $subject);
$ musters : Ein assoziatives Array, in dem der Schlüssel ein regulärer Ausdruck ist und der Wert eine Rückruffunktion ist.
$ Betreff : Die Eingabezeichenfolge, die übereinstimmt und ersetzt.
Angenommen, wir haben eine Zeichenfolge, die mehrere verschiedene Arten von URLs und Datumsformaten enthält, und wir müssen diese URLs und Daten gleichzeitig ersetzen. Hier ist ein Beispiel, bei dem die Funktion preg_replace_callback_array verwendet wird:
<?php
// String eingeben
$text = "Visit our website at http://example.com for more info. Also, the event is on 2023-04-21.";
// Definieren Sie die Rückruffunktion
$patterns = [
'/http(s)?:\/\/([^\/]+)/' => function ($matches) {
// ersetzenURLDer Domain -Name ist m66.net
return "http://" . 'm66.net' . substr($matches[0], strlen($matches[1]) + strlen($matches[2]) + 3);
},
'/\d{4}-\d{2}-\d{2}/' => function ($matches) {
// ersetzen日期格式
return str_replace("-", "/", $matches[0]);
}
];
// verwenden preg_replace_callback_array 函数进行多个ersetzen
$result = preg_replace_callback_array($patterns, $text);
// Ausgangsergebnis
echo $result;
?>
Eingabezeichenfolge : Text mit URL und Datum.
Regulärer Ausdruck :
Die ersten regulären /http (s)?: \/\/([^\/]+)/ Wird verwendet, um der URL zu entsprechen.
Die zweite reguläre reguläre / \ d {4}-\ d {2}-\ d {2} / wird verwendet, um dem Datum zu entsprechen (z. B. 2023-04-21 ).
Rückruffunktion :
Für die URL ersetzen wir ihren Domainnamenteil durch m66.net und lassen dann den Pfadteil unverändert.
Für Daten ersetzen wir - und wenden Sie sich somit das Datumsformat in 2023/04/21 um.
Ergebnisausgabe : Die endgültige Ausgabe des ersetzten Textes.
Visit our website at http://m66.net for more info. Also, the event is on 2023/04/21.
Bei Verwendung preg_replace_callback_array muss sicherstellen, dass jede Rückruffunktion des regulären Ausdrucks einen Ersatzwert zurückgeben kann.
preg_replace_callback_array entspricht und ersetzt in der Reihenfolge von regulären Ausdrücken. Stellen Sie daher sicher, dass reguläre Ausdrücke nicht in Konflikt stehen.
Wenn komplexe Ersatzvorgänge erforderlich sind, sind Rückruffunktionen unerlässlich, da Sie sie basierend auf dem regulären übereinstimmenden Inhalt flexibel verarbeiten können.
Auf diese Weise ermöglicht Preg_Replace_Callback_Array , mehrere regelmäßige Ausdrucksersatzaufgaben effizient zu erledigen, und der Code ist prägnanter und leicht zu verstehen. Hoffentlich hilft Ihnen dieser Artikel, zu verstehen, wie Sie diese Funktion verwenden, um mehrere reguläre Übereinstimmungen gleichzeitig zu ersetzen.