Funkcija preg_last_error
Funkcija preg_last_error vraća kod poslednje greške,
koja se pojavila prilikom rada sa funkcijama za rad sa regularnim izrazima.
Ovo je korisno za otklanjanje grešaka u regularnim izrazima, kada funkcije
poput preg_match ili preg_replace vraćaju false.
Funkcija ne prima parametre.
Funkcija vraća celobrojni kod greške. Radi praktičnosti, kod greške možete uporediti sa specijalnim konstantama (pogledajte tabelu ispod).
Sintaksa
preg_last_error(): int;
Tabela sa konstantama grešaka
| Konstanta | Vrednost | Opis |
|---|---|---|
PREG_NO_ERROR |
0 | Nije došlo do greške |
PREG_INTERNAL_ERROR |
1 | Interna PCRE greška |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Prekoračeno je ograničenje povratnog traganja (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Prekoračeno ograničenje rekurzije |
PREG_BAD_UTF8_ERROR |
4 | Neispravni UTF-8 podaci |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Pomeraj se ne poklapa sa početkom ispravnog UTF-8 koda |
PREG_JIT_STACKLIMIT_ERROR |
6 | Prekoračeno ograničenje JIT kompajlerskog steka |
Primer
Proverimo grešku nakon neispravnog regularnog izraza:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Rezultat izvršavanja koda:
4
Primer
Korišćenje sa PCRE konstantama grešaka:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Rezultat izvršavanja koda:
'Backtrack limit was exhausted'
Pogledajte takođe
-
funkciju
preg_match,
koja izvršava pretragu po regularnom izrazu -
funkciju
preg_replace,
koja izvršava zamenu po regularnom izrazu -
funkciju
preg_quote,
koja ekranizuje specijalne karaktere u regularnim izrazima