Funktsioon preg_last_error
Funktsioon preg_last_error tagastab viimase vea koodi,
mis tekkis regulaaravaldistega töötavate funktsioonide kasutamisel.
See on kasulik regulaaravaldiste silumiseks, kui funktsioonid
nagu preg_match või preg_replace tagastavad false.
Funktsioon ei võta parameetreid.
Funktsioon tagastab täisarvulise veakoodi. Mugavuse huvides saab veakoodi võrrelda spetsiaalsete konstantidega (vt allolevat tabelit).
Süntaks
preg_last_error(): int;
Tabel veakonstantidega
| Konstant | Väärtus | Kirjeldus |
|---|---|---|
PREG_NO_ERROR |
0 | Vigu ei esinenud |
PREG_INTERNAL_ERROR |
1 | PCRE sisemine viga |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Tagasijälgimise limiit on ületatud (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursiooni limiit on ületatud |
PREG_BAD_UTF8_ERROR |
4 | Vigased UTF-8 andmed |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Nihke ei vasta korraliku UTF-8 koodi algusele |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-kompilaatori pinumälu limiit on ületatud |
Näide
Kontrollime viga pärast ebakorrektse regulaaravaldise kasutamist:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Koodi täitmise tulemus:
4
Näide
Kasutamine koos PCRE veakonstantidega:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Koodi täitmise tulemus:
'Backtrack limit was exhausted'
Vaata ka
-
funktsiooni
preg_match,
mis sooritab otsingu regulaaravaldise järgi -
funktsiooni
preg_replace,
mis sooritab asenduse regulaaravaldise järgi -
funktsiooni
preg_quote,
mis kaitseb erisümboleid regulaaravaldistes