Руководство по языку программирования PHP
 

PCRE
 

Функции для работы с регулярными выражениями

preg_last_error()

Синтаксис:

preg_last_error()


Поддерживается следующими версиями PHP:

3
4
5.2
-
-
+

Описание функции:

Функция preg_last_error() возвращает код ошибки последнего выполнения регулярного выражения PCRE (Perl Compatible Regular Expressions).

Код ошибки может иметь одно из следующих значений:

0 - PREG_NO_ERROR - ошибки отсутствуют

1 - PREG_INTERNAL_ERROR - внутренняя ошибка

2 - PREG_BACKTRACK_LIMIT_ERROR - исчерпан лимит обратных ссылок PCRE (зависит от установки директивы "pcre.backtrack_limit" в файле php.ini).

3 - PREG_RECURSION_LIMIT_ERROR - исчерпан лимит на рекурсию. (зависит от установки директивы "pcre.recursion_limit" в файле php.ini).

4 - PREG_BAD_UTF8_ERROR - ошибка в кодировке utf8

5 - PREG_BAD_UTF8_OFFSET_ERROR - смещение в кодировке utf8 не определено


Регулярные выражения

Отдельно следует остановится на регулярных выражениях, без представления о которых довольно трудно (если вообще возможно) разобраться с работой функции preg_last_error().

Достаточно хорошо описание регулярных выражений приводится на wikipedia.org, основные моменты применения регулярных выражений также описаны здесь.


Примеры:

Пример 1:

В этом примере будет возвращен код "0" - ошибки отсутствуют

<?php
$str = "(945)-47-54-44";
$arr_str = preg_replace("/\([0-9]+\)/", "***",$str);
print ( preg_last_error());
?>

Результат:

0

Пример 2:

В следующем примере будет возвращен код "2" - исчерпан лимит обратных ссылок PCRE

<?php
preg_match('/(\D+)*[!?]/', 'This car is green');
print (preg_last_error());

?>

Результат:

2

 

PCRE функции

preg_grep()
preg_filter()
preg_last_error()
preg_match()
preg_match_all()
preg_quote()
preg_replace()
preg_replace_callback()
preg_split()

 

 

???????@Mail.ru