PHP
Referenzliste
preg_replace_callback
PCRE-Funktionen
Befehl:
mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit = -1 [, int &$count ]] )
Parameter-Liste:
Beschreibung | |
---|---|
Der Ausdruck, nach dem gesucht werden soll. Es kann entweder eine Zeichenkette oder ein Array mit Zeichenketten sein. | |
Ein Callback, dem ein Array von Übereinstimmungen mit subject übergeben wird. Der Callback sollte die Ersetzungs-Zeichenkette liefern. Das ist die Callback-Signatur:string handler ( array $matches )Häufig werden Sie die callback -Funktion für preg_replace_callback() nur an einer Stelle benötigen. In diesem Fall können Sie eine Anonyme Funktion verwenden, um innerhalb des Aufrufs von preg_replace_callback() den Callback zu deklarieren. Auf diese Weise haben Sie alle Informationen für den Aufruf an einer Stelle und stopfen den Namensraum für Funktionen nicht mit Namen für Callback-Funktionen voll, die sonst nirgends verwendet werden.Beispiel #1 preg_replace_callback() und Anonyme Funktion <?php | |
Die Zeichenkette oder ein Array mit Zeichenketten zum Suchen und Ersetzen. | |
Die Höchstzahl der Ersetzungen für jedes Suchmuster in jeder subject . Standardmässig -1 (unbegrenzt). | |
Falls angegeben, wird dieser Variable die Anzahl vorgenommener Ersetzungen zugewiesen. |
Rückgabewerte:
Falls
Falls Übereinstimmungen gefunden werden, wird die neue Zeichenkette zurückgegeben und andernfalls die unveränderte Zeichenkette
subject
ein Array ist, gibt preg_replace_callback() ein Array zurück und andernfalls eine Zeichenkette. Bei einem Fehler ist der Rückgabewert NULL
.Falls Übereinstimmungen gefunden werden, wird die neue Zeichenkette zurückgegeben und andernfalls die unveränderte Zeichenkette
subject
. Beschreibung:
Abgesehen von der Tatsache, dass statt des Parameters
replacement
ein callback
angegeben werden soll, ist das Verhalten dieser Funktion identisch zu preg_replace(). Aktiv in Version:
(PHP 4 >= 4.0.5, PHP 5, PHP 7)
Siehe auch:
Sucht und ersetzt mit regulären Ausdrücken
Liefert den Fehlercode der letzten PCRE RegEx-Auswertung
preg_replace_callback() - Beispiel:
Eingabe:
<?PHP // dieser Text wurde 2002 verwendet // wir wollen ihn für 2003 aktualisieren $text = "Aprilscherze gibts am 01.04.2002\n"; $text.= "Das letzte Weihnachten war am 24.12.2001\n"; // die Callback-Funktion function naechstes_jahr($treffer) { // wie üblich: $treffer[0] ist die Übereinstimmung mit dem // kompletten Suchmuster, $treffer[1] die Übereinstimmung mit // dem ersten eingeklammerten Teilsuchmuster und so weiter return $treffer[1].($treffer[2]+1); } echo preg_replace_callback( "|(\d{2}\.\d{2}\.)(\d{4})|", "naechstes_jahr", $text); ?>
Ausgabe:
Aprilscherze gibts am 01.04.2024
Das letzte Weihnachten war am 24.12.2023
Das letzte Weihnachten war am 24.12.2023
Beschreibung:
Beschreibung | |
---|---|
5.1.0 | Den Parameter count hinzugefügt |
preg_replace_callback() - Beispiel 2 :unter Verwendung einer rekursiven Struktur um gekapselten BB-Code zu verarbeiten
Eingabe:
<?PHP $eingabe = "plain [indent] deep [indent] deeper [/indent] deep [/indent] plain"; function parseTagsRecursive($eingabe) { $regex = '#\[indent]((?:[^[]|\[(?!/?indent])|(?R))+)\[/indent]#'; if (is_array($eingabe)) { $eingabe = '<div style="margin-left: 10px">'.$eingabe[1].'</div>'; } return preg_replace_callback($regex, 'parseTagsRecursive', $eingabe); } $ausgabe = parseTagsRecursive($eingabe); echo $ausgabe; ?>
Beschreibung:
Beschreibung | |
---|---|
5.1.0 | Den Parameter count hinzugefügt |
PCRE-Funktionen