Die preg_replace_callback-Funktion bietet eine Alternative zum /e-Modifikator in preg_replace() , was für mehr Flexibilität und Sicherheit sorgt. Um diesen Übergang zu verstehen, untersuchen wir den Zweck und die Verwendung dieser Änderungen.
In regulären Ausdrücken werden Rückreferenzen verwendet, um auf erfasste Teile zuzugreifen der übereinstimmenden Zeichenfolge. Der Rückverweis 2 bezieht sich auf den zweiten erfassten Teil, der in Ihrem Beispiel oft mit ([a-z]) bezeichnet wird. Es ermöglicht Ihnen, den erfassten Wert innerhalb der Ersetzungszeichenfolge zu manipulieren.
preg_replace_callback erweitert die Funktionalität von preg_replace() durch die Verwendung eines Rückrufs Funktion anstelle des Modifikators /e. Diese Rückruffunktion erhält als Argument ein Array mit den passenden Rückverweisen.
Um Ihren vorhandenen Code zu migrieren, können Sie die /e-Ersatzzeichenfolge in eine anonyme Rückruffunktion wie konvertieren also:
'strtoupper("2")'<br>
Wird:
function($matches ) { return strtoupper($matches[2]); }<br>
wobei $matches[2] 2 im ursprünglichen Ausdruck entspricht.
Beachten Sie, dass $matches lediglich ein Parametername für die Callback-Funktion ist; Sie können verschiedene Namen frei wählen. Darüber hinaus können Sie eine benannte Funktion oder eine erstklassige aufrufbare Syntax verwenden, wie in der bereitgestellten Antwort erläutert.
Innerhalb der Rückruffunktion Sie können grundsätzlich nicht auf Variablen aus dem umgebenden Bereich zugreifen. Um dies zu umgehen, können Sie das Schlüsselwort „use“ in anonymen Funktionen verwenden, um erforderliche Variablen zu importieren.
Indem Sie diese Richtlinien befolgen, können Sie Ihren preg_replace()-Code nahtlos auf die modernere und vielseitigere preg_replace_callback-Funktion migrieren.
Das obige ist der detaillierte Inhalt vonWie migriere ich sicher vom Modifikator „/e' von „preg_replace()' zu „preg_replace_callback()'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!