Functie preg_last_error
De functie preg_last_error retourneert de code van de laatste fout
die optrad tijdens het werken met functies voor reguliere expressies.
Dit is handig voor het debuggen van reguliere expressies, wanneer functies
zoals preg_match of preg_replace false retourneren.
De functie accepteert geen parameters.
De functie retourneert een integer foutcode. Voor het gemak kan de foutcode worden vergeleken met speciale constanten (zie onderstaande tabel).
Syntaxis
preg_last_error(): int;
Tabel met foutconstanten
| Constante | Waarde | Beschrijving |
|---|---|---|
PREG_NO_ERROR |
0 | Er trad geen fout op |
PREG_INTERNAL_ERROR |
1 | Interne PCRE-fout |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Backtracklimiet overschreden (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Recursielimiet overschreden |
PREG_BAD_UTF8_ERROR |
4 | Ongeldige UTF-8 gegevens |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset komt niet overeen met het begin van een geldige UTF-8 code |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-compiler stacklimiet overschreden |
Voorbeeld
Laten we een fout controleren na een ongeldige reguliere expressie:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Resultaat van de code-uitvoering:
4
Voorbeeld
Gebruik met PCRE foutconstanten:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Resultaat van de code-uitvoering:
'Backtrack limit was exhausted'
Zie ook
-
de functie
preg_match,
die een zoekopdracht uitvoert met een reguliere expressie -
de functie
preg_replace,
die een vervanging uitvoert met een reguliere expressie -
de functie
preg_quote,
die speciale tekens in reguliere expressies escaport