Функцыя preg_last_error
Функцыя preg_last_error
вяртае код апошняй памылкі,
якая ўзнікла пры працы з функцыямі для працы з рэгулярнымі выразамі.
Гэта карысна для адладкі рэгулярных выразаў, калі функцыі
накшталт preg_match
або preg_replace
вяртаюць false
.
Функцыя не прымае параметраў.
Функцыя вяртае цэлалікавы код памылкі. Для зручнасці можна параўноўваць код памылкі са спецыяльнымі канстантамі (гл. табліцу ніжэй).
Сінтаксіс
preg_last_error(): int;
Табліца з канстантамі памылак
Канстанта | Значэнне | Апісанне |
---|---|---|
PREG_NO_ERROR |
0 | Памылак не адбылося |
PREG_INTERNAL_ERROR |
1 | Унутраная памылка PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Перавышаны ліміт адваротнага адсочвання (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Перавышаны ліміт рэкурсіі |
PREG_BAD_UTF8_ERROR |
4 | Некарэктныя UTF-8 дадзеныя |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Зрушэнне не адпавядае пачатку карэктнага UTF-8 кода |
PREG_JIT_STACKLIMIT_ERROR |
6 | Перавышаны ліміт стэка JIT-кампілятара |
Прыклад
Праверым памылку пасля некарэктнага рэгулярнага выразу:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Вынік выканання кода:
4
Прыклад
Выкарыстанне з канстантамі памылак PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Вынік выканання кода:
'Backtrack limit was exhausted'
Глядзіце таксама
-
функцыю
preg_match
,
якая выконвае пошук па рэгулярным выразе -
функцыю
preg_replace
,
якая выконвае замену па рэгулярным выразе -
функцыю
preg_quote
,
якая экрануе спецыяльныя сімвалы ў рэгулярных выразах