Функција 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,
која екранира специјалне знакове у регуларним изразима