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