Funktio preg_last_error
Funktio preg_last_error palauttaa viimeisimmän virhekoodin,
joka on tapahtunut säännöllisiä lausekkeita käsittelevien funktioiden yhteydessä.
Tämä on hyödyllistä säännöllisten lausekkeiden debuggaamisessa, kun funktiot
kuten preg_match tai preg_replace palauttavat false.
Funktio ei ota parametreja.
Funktio palauttaa kokonaislukuna virhekoodin. Mukavuuden vuoksi virhekoodia voi verrata erikoiskonstantteihin (katso alla oleva taulukko).
Syntaksi
preg_last_error(): int;
Taulukko virhekonstanteista
| Konstantti | Arvo | Kuvaus |
|---|---|---|
PREG_NO_ERROR |
0 | Virheitä ei tapahtunut |
PREG_INTERNAL_ERROR |
1 | PCRE:n sisäinen virhe |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Backtrack-raja ylitetty (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursion raja ylitetty |
PREG_BAD_UTF8_ERROR |
4 | Virheelliset UTF-8 tiedot |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Offset ei vastaa oikean UTF-8 koodin alkua |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-kääntäjän pinon raja ylitetty |
Esimerkki
Tarkistetaan virhe virheellisen säännöllisen lausekkeen jälkeen:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Koodin suorituksen tulos:
4
Esimerkki
Käyttö PCRE:n virhekonstanttien kanssa:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Koodin suorituksen tulos:
'Backtrack limit was exhausted'
Katso myös
-
funktion
preg_match,
joka suorittaa haun säännöllisen lausekkeen perusteella -
funktion
preg_replace,
joka suorittaa korvauksen säännöllisen lausekkeen perusteella -
funktion
preg_quote,
joka escapee säännöllisten lausekkeiden erikoismerkit