Funksjonen preg_last_error
Funksjonen preg_last_error returnerer koden for den siste feilen,
som oppstod under arbeid med funksjoner for regulære uttrykk.
Dette er nyttig for feilsøking av regulære uttrykk, når funksjoner
som preg_match eller preg_replace returnerer false.
Funksjonen tar ingen parametere.
Funksjonen returnerer en heltallsfeilkode. For enkelhets skyld kan du sammenligne feilkoden med spesielle konstanter (se tabellen nedenfor).
Syntaks
preg_last_error(): int;
Tabell med feilkonstanter
| Konstant | Verdi | Beskrivelse |
|---|---|---|
PREG_NO_ERROR |
0 | Ingen feil oppstod |
PREG_INTERNAL_ERROR |
1 | Intern PCRE-feil |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Grensen for bakoversporing (backtrack limit) er overskredet |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursjonsgrensen er overskredet |
PREG_BAD_UTF8_ERROR |
4 | Ugyldige UTF-8-data |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset samsvarer ikke med starten på en gyldig UTF-8-kode |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-kompilatoren sin stakkbegrensning er overskredet |
Eksempel
La oss sjekke feilen etter et ugyldig regulært uttrykk:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Resultat av kjøring:
4
Eksempel
Bruk med PCRE feilkonstanter:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Resultat av kjøring:
'Backtrack limit was exhausted'
Se også
-
funksjonen
preg_match,
som utfører et søk med regulært uttrykk -
funksjonen
preg_replace,
som utfører en erstatning med regulært uttrykk -
funksjonen
preg_quote,
som escape-spesialtegn i regulære uttrykk