Funkcia preg_last_error
Funkcia preg_last_error vráti kód poslednej chyby,
ktorá vznikla pri práci s funkciami pre prácu s regulárnymi výrazmi.
Je to užitočné pre ladenie regulárnych výrazov, keď funkcie
ako preg_match alebo preg_replace vrátia false.
Funkcia neprijíma žiadne parametre.
Funkcia vráti celočíselný kód chyby. Pre pohodlie môžete porovnávať kód chyby so špeciálnymi konštantami (pozri tabuľku nižšie).
Syntax
preg_last_error(): int;
Tabuľka s konštantami chýb
| Konštanta | Hodnota | Popis |
|---|---|---|
PREG_NO_ERROR |
0 | Nastala žiadna chyba |
PREG_INTERNAL_ERROR |
1 | Interná chyba PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Prekročený limit spätného sledovania (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Prekročený limit rekurzie |
PREG_BAD_UTF8_ERROR |
4 | Nesprávne UTF-8 dáta |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Ofset nezodpovedá začiatku platného kódu UTF-8 |
PREG_JIT_STACKLIMIT_ERROR |
6 | Prekročený limit zásobníka JIT kompilátora |
Príklad
Skontrolujeme chybu po nesprávnom regulárnom výraze:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Výsledok vykonania kódu:
4
Príklad
Použitie s konštantami chýb PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Výsledok vykonania kódu:
'Backtrack limit was exhausted'
Pozrite tiež
-
funkciu
preg_match,
ktorá vykonáva vyhľadávanie podľa regulárneho výrazu -
funkciu
preg_replace,
ktorá vykonáva nahradzovanie podľa regulárneho výrazu -
funkciu
preg_quote,
ktorá escapuje špeciálne znaky v regulárnych výrazoch