Функција preg_last_error

Функцијата preg_last_error го враќа кодот на последната грешка, што се појавила при работа со функциите за работа со регуларни изрази. Ова е корисно за дебагирање на регуларни изрази, кога функциите како preg_match или preg_replace враќаат false. Функцијата не прифаќа параметри.

Функцијата враќа целоброен код за грешка. За погодност, кодот на грешката може да се спореди со посебни константи (видете ја табелата подолу).

Синтакса

phppreg_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<?php
  preg_match('/invalid(regex/', 'test');
  $error_code = preg_last_error();
  echo $error_code;
?>

Резултат од извршување на кодот:

php4

Пример

Користење со константи за грешки во PCRE:

php<?php
  preg_match('/(?:\D+/', 'abc123');
  if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'Backtrack limit was exhausted';
  }
?>

Резултат од извршување на кодот:

php'Backtrack limit was exhausted'

Погледнете ги исто така

  • функцијата preg_match,
    која извршува пребарување со регуларен израз
  • функцијата preg_replace,
    која извршува замена со регуларен израз
  • функцијата preg_quote,
    која екранира специјални знаци во регуларни изрази