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