Funkcija preg_last_error
Funkcija preg_last_error grąžina paskutinės klaidos kodą,
atsiradusį dirbant su funkcijomis skirtomis darbui su reguliariaisiais reiškiniais.
Tai naudinga derinant reguliuosius reiškinius, kai funkcijos
kaip preg_match ar preg_replace grąžina false.
Funkcija nepriima parametrų.
Funkcija grąžina sveikąjį skaičių - klaidos kodą. Patogumui, klaidos kodą galima palyginti su specialiomis konstantomis (žr. lentelę žemiau).
Sintaksė
preg_last_error(): int;
Lentelė su klaidų konstantomis
| Konstanta | Reikšmė | Aprašas |
|---|---|---|
PREG_NO_ERROR |
0 | Klaidų neatsirado |
PREG_INTERNAL_ERROR |
1 | Vidinė PCRE klaida |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Viršytas atbulinio sekimo limitas (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Viršytas rekursijos limitas |
PREG_BAD_UTF8_ERROR |
4 | Neteisingi UTF-8 duomenys |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Poslinkis neatitinka teisingo UTF-8 kodo pradžios |
PREG_JIT_STACKLIMIT_ERROR |
6 | Viršytas JIT kompiliatoriaus steko limitas |
Pavyzdys
Patikrinkime klaidą po neteisingo reguliaraus reiškinio:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Kodo vykdymo rezultatas:
4
Pavyzdys
Naudojimas su PCRE klaidų konstantomis:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Kodo vykdymo rezultatas:
'Backtrack limit was exhausted'
Taip pat žiūrėkite
-
funkciją
preg_match,
kuri atlieka paiešką pagal reguliarųjį reiškinį -
funkciją
preg_replace,
kuri atlieka pakeitimą pagal reguliarųjį reiškinį -
funkciją
preg_quote,
kuri ekranuoja specialiuosius simbolius reguliariosiose išraiškose