Funkcia preg_last_error

Funkcia preg_last_error vráti kód poslednej chyby, ktorá vznikla pri práci s funkciami pre prácu s regulárnymi výrazmi. Je to užitočné pre ladenie regulárnych výrazov, keď funkcie ako preg_match alebo preg_replace vrátia false. Funkcia neprijíma žiadne parametre.

Funkcia vráti celočíselný kód chyby. Pre pohodlie môžete porovnávať kód chyby so špeciálnymi konštantami (pozri tabuľku nižšie).

Syntax

phppreg_last_error(): int;

Tabuľka s konštantami chýb

Konštanta Hodnota Popis
PREG_NO_ERROR 0 Nastala žiadna chyba
PREG_INTERNAL_ERROR 1 Interná chyba PCRE
PREG_BACKTRACK_LIMIT_ERROR 2 Prekročený limit spätného sledovania (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Prekročený limit rekurzie
PREG_BAD_UTF8_ERROR 4 Nesprávne UTF-8 dáta
PREG_BAD_UTF8_OFFSET_ERROR 5 Ofset nezodpovedá začiatku platného kódu UTF-8
PREG_JIT_STACKLIMIT_ERROR 6 Prekročený limit zásobníka JIT kompilátora

Príklad

Skontrolujeme chybu po nesprávnom regulárnom výraze:

php<?php
  preg_match('/invalid(regex/', 'test');
  $error_code = preg_last_error();
  echo $error_code;
?>

Výsledok vykonania kódu:

php4

Príklad

Použitie s konštantami chýb PCRE:

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

Výsledok vykonania kódu:

php'Backtrack limit was exhausted'

Pozrite tiež

  • funkciu preg_match,
    ktorá vykonáva vyhľadávanie podľa regulárneho výrazu
  • funkciu preg_replace,
    ktorá vykonáva nahradzovanie podľa regulárneho výrazu
  • funkciu preg_quote,
    ktorá escapuje špeciálne znaky v regulárnych výrazoch