Funktionen preg_last_error
Funktionen preg_last_error returnerer koden for den seneste fejl,
der opstod under arbejde med funktioner til regulære udtryk.
Dette er nyttigt til fejlfinding af regulære udtryk, når funktioner
som preg_match eller preg_replace returnerer false.
Funktionen tager ingen parametre.
Funktionen returnerer en heltals fejlkode. For nemheds skyld kan fejlkoden sammenlignes med specielle konstanter (se tabellen nedenfor).
Syntaks
preg_last_error(): int;
Tabel med fejlkonstanter
| Konstant | Værdi | Beskrivelse |
|---|---|---|
PREG_NO_ERROR |
0 | Ingen fejl opstod |
PREG_INTERNAL_ERROR |
1 | Intern PCRE-fejl |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Grænsen for backtracking er overskredet (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursionsgrænsen er overskredet |
PREG_BAD_UTF8_ERROR |
4 | Ugyldige UTF-8 data |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset svarer ikke til starten på en gyldig UTF-8 kode |
PREG_JIT_STACKLIMIT_ERROR |
6 | Grænsen for JIT-kompilatorens stak er overskredet |
Eksempel
Lad os tjekke fejlen efter et ugyldigt regulært udtryk:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Resultat af kodeudførelse:
4
Eksempel
Brug med PCRE fejlkonstanter:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Resultat af kodeudførelse:
'Backtrack limit was exhausted'
Se også
-
funktionen
preg_match,
som udfører et søgning med et regulært udtryk -
funktionen
preg_replace,
som udfører en erstatning med et regulært udtryk -
funktionen
preg_quote,
som escapede specielle tegn i regulære udtryk