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 функциясы,
    тұрақты өрнектердегі арнайы таңбаларды экранизациялайды