Funktionen preg_last_error
Funktionen preg_last_error returnerar koden för det senaste felet
som uppstod vid arbete med funktioner för reguljära uttryck.
Detta är användbart för felsökning av reguljära uttryck när funktioner
som preg_match eller preg_replace returnerar false.
Funktionen tar inga parametrar.
Funktionen returnerar en heltals felkod. För enkelhets skull kan felkoden jämföras med speciella konstanter (se tabellen nedan).
Syntax
preg_last_error(): int;
Tabell med felkonstanter
| Konstant | Värde | Beskrivning |
|---|---|---|
PREG_NO_ERROR |
0 | Inga fel inträffade |
PREG_INTERNAL_ERROR |
1 | Internt PCRE-fel |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Gränsen för backtracking överskreds (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursionsgränsen överskreds |
PREG_BAD_UTF8_ERROR |
4 | Ogiltiga UTF-8-data |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset motsvarar inte början på en giltig UTF-8-kod |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-kompilatorns stackgräns överskreds |
Exempel
Låt oss kontrollera felet efter ett ogiltigt reguljärt uttryck:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Resultat av kodkörning:
4
Exempel
Användning med PCRE felkonstanter:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Resultat av kodkörning:
'Backtrack limit was exhausted'
Se även
-
funktionen
preg_match,
som utför sökning med ett reguljärt uttryck -
funktionen
preg_replace,
som utför ersättning med ett reguljärt uttryck -
funktionen
preg_quote,
som escape-specialtecken i reguljära uttryck