Funktion preg_last_error
Die Funktion preg_last_error gibt den Code des letzten Fehlers zurück,
der bei der Arbeit mit Funktionen für Regular-Ausdrücke aufgetreten ist.
Dies ist nützlich zum Debuggen von Regular-Ausdrücken, wenn Funktionen
wie preg_match oder preg_replace false zurückgeben.
Die Funktion akzeptiert keine Parameter.
Die Funktion gibt einen ganzzahligen Fehlercode zurück. Zur Bequemlichkeit kann der Fehlercode mit speziellen Konstanten verglichen werden (siehe Tabelle unten).
Syntax
preg_last_error(): int;
Tabelle mit Fehlerkonstanten
| Konstante | Wert | Beschreibung |
|---|---|---|
PREG_NO_ERROR |
0 | Kein Fehler ist aufgetreten |
PREG_INTERNAL_ERROR |
1 | Interner PCRE-Fehler |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Backtrack-Limit wurde überschritten (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursionslimit wurde überschritten |
PREG_BAD_UTF8_ERROR |
4 | Ungültige UTF-8-Daten |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset entspricht nicht dem Beginn eines gültigen UTF-8-Codes |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-Compiler-Stacklimit wurde überschritten |
Beispiel
Prüfen eines Fehlers nach einem ungültigen Regular-Ausdruck:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Ergebnis der Codeausführung:
4
Beispiel
Verwendung mit PCRE-Fehlerkonstanten:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Ergebnis der Codeausführung:
'Backtrack limit was exhausted'
Siehe auch
-
die Funktion
preg_match,
die eine Suche mit einem Regular-Ausdruck durchführt -
die Funktion
preg_replace,
die eine Ersetzung mit einem Regular-Ausdruck durchführt -
die Funktion
preg_quote,
die Sonderzeichen in Regular-Ausdrücken maskiert