Funkce preg_last_error
Funkce preg_last_error vrací kód poslední chyby,
která nastala při práci s funkcemi pro práci s regulárními výrazy.
To je užitečné pro ladění regulárních výrazů, když funkce
jako preg_match nebo preg_replace vrátí false.
Funkce nepřijímá žádné parametry.
Funkce vrací celočíselný kód chyby. Pro pohodlí lze kód chyby porovnávat se speciálními konstantami (viz tabulka níže).
Syntaxe
preg_last_error(): int;
Tabulka s konstantami chyb
| Konstanta | Hodnota | Popis |
|---|---|---|
PREG_NO_ERROR |
0 | Nestala se žádná chyba |
PREG_INTERNAL_ERROR |
1 | Interní chyba PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Překročen limit backtrackingu (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Překročen limit rekurze |
PREG_BAD_UTF8_ERROR |
4 | Neplatná UTF-8 data |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Posun neodpovídá začátku platného UTF-8 kódu |
PREG_JIT_STACKLIMIT_ERROR |
6 | Překročen limit zásobníku JIT kompilátoru |
Příklad
Zkontrolujme chybu po neplatném regulárním výrazu:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Výsledek provedení kódu:
4
Příklad
Použití s konstantami chyb PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Výsledek provedení kódu:
'Backtrack limit was exhausted'
Viz také
-
funkci
preg_match,
která provádí vyhledávání podle regulárního výrazu -
funkci
preg_replace,
která provádí nahrazování podle regulárního výrazu -
funkci
preg_quote,
která escapuje speciální znaky v regulárních výrazech