Funkcija preg_last_error
Funkcija preg_last_error atgriež pēdējās kļūdas kodu,
kas radies, strādājot ar funkcijām regulāro izteiksmju darbībai.
Tas ir noderīgi regulāro izteiksmju atkļūdošanai, kad funkcijas
piemēram preg_match vai preg_replace atgriež false.
Funkcija nepieņem parametrus.
Funkcija atgriež vesela skaitļa kļūdas kodu. Ērtībai to var salīdzināt ar speciālajām konstantēm (skatīt tabulu zemāk).
Sintakse
preg_last_error(): int;
Tabula ar kļūdu konstantēm
| Konstante | Vērtība | Apraksts |
|---|---|---|
PREG_NO_ERROR |
0 | Nav radusies kļūda |
PREG_INTERNAL_ERROR |
1 | Iekšēja PCRE kļūda |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Pārsniegts atkāpšanās limits (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Pārsniegts rekursijas limits |
PREG_BAD_UTF8_ERROR |
4 | Nekorekti UTF-8 dati |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Nobīde neatbilst korekta UTF-8 koda sākumam |
PREG_JIT_STACKLIMIT_ERROR |
6 | Pārsniegts JIT kompilatora kaudzes limits |
Piemērs
Pārbaudīsim kļūdu pēc nekorektas regulāras izteiksmes:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Koda izpildes rezultāts:
4
Piemērs
Lietošana ar PCRE kļūdu konstantēm:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Koda izpildes rezultāts:
'Backtrack limit was exhausted'
Skatiet arī
-
funkciju
preg_match,
kas veic meklēšanu pēc regulāras izteiksmes -
funkciju
preg_replace,
kas veic aizstāšanu pēc regulāras izteiksmes -
funkciju
preg_quote,
kas ekranē speciālās rakstzīmes regulārajās izteiksmēs