208 of 410 menu

Функция 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 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,
    която екранира специални символи в регулярни изрази
Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне