A preg_last_error függvény
A preg_last_error függvény visszaadja a legutóbbi hiba kódját,
amely a reguláris kifejezésekkel dolgozó függvények használata során történt.
Ez hasznos a reguláris kifejezések hibakereséséhez, amikor olyan függvények,
mint a preg_match vagy a preg_replace false értéket adnak vissza.
A függvény nem fogad paramétereket.
A függvény egy egész számként adja vissza a hiba kódját. A kényelem kedvéért a hiba kódját össze lehet hasonlítani különleges konstansokkal (lásd az alábbi táblázatot).
Szintaxis
preg_last_error(): int;
Táblázat a hibakonstansokkal
| Konstans | Érték | Leírás |
|---|---|---|
PREG_NO_ERROR |
0 | Nem történt hiba |
PREG_INTERNAL_ERROR |
1 | Belső PCRE hiba |
PREG_BACKTRACK_LIMIT_ERROR |
2 | A backtrack korlát túllépve (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | A rekurzió korlátja túllépve |
PREG_BAD_UTF8_ERROR |
4 | Helytelen UTF-8 adat |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Az eltolás nem felel meg egy érvényes UTF-8 kód kezdetének |
PREG_JIT_STACKLIMIT_ERROR |
6 | A JIT fordító veremkorlátja túllépve |
Példa
Ellenőrizzünk egy hibát egy helytelen reguláris kifejezés után:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
A kód végrehajtásának eredménye:
4
Példa
Használat PCRE hibakonstansokkal:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'A backtrack korlát kimerült';
}
?>
A kód végrehajtásának eredménye:
'A backtrack korlát kimerült'
Lásd még
-
a
preg_matchfüggvényt,
amely reguláris kifejezésre keres -
a
preg_replacefüggvényt,
amely reguláris kifejezésre cserél -
a
preg_quotefüggvényt,
amely a speciális karaktereket escape-eli a reguláris kifejezésekben