Funkcija preg_last_error

Funkcija preg_last_error vraća kod poslednje greške, koja se pojavila prilikom rada sa funkcijama za rad sa regularnim izrazima. Ovo je korisno za otklanjanje grešaka u regularnim izrazima, kada funkcije poput preg_match ili preg_replace vraćaju false. Funkcija ne prima parametre.

Funkcija vraća celobrojni kod greške. Radi praktičnosti, kod greške možete uporediti sa specijalnim konstantama (pogledajte tabelu ispod).

Sintaksa

phppreg_last_error(): int;

Tabela sa konstantama grešaka

Konstanta Vrednost Opis
PREG_NO_ERROR 0 Nije došlo do greške
PREG_INTERNAL_ERROR 1 Interna PCRE greška
PREG_BACKTRACK_LIMIT_ERROR 2 Prekoračeno je ograničenje povratnog traganja (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Prekoračeno ograničenje rekurzije
PREG_BAD_UTF8_ERROR 4 Neispravni UTF-8 podaci
PREG_BAD_UTF8_OFFSET_ERROR 5 Pomeraj se ne poklapa sa početkom ispravnog UTF-8 koda
PREG_JIT_STACKLIMIT_ERROR 6 Prekoračeno ograničenje JIT kompajlerskog steka

Primer

Proverimo grešku nakon neispravnog regularnog izraza:

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

Rezultat izvršavanja koda:

php4

Primer

Korišćenje sa PCRE konstantama grešaka:

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

Rezultat izvršavanja koda:

php'Backtrack limit was exhausted'

Pogledajte takođe

  • funkciju preg_match,
    koja izvršava pretragu po regularnom izrazu
  • funkciju preg_replace,
    koja izvršava zamenu po regularnom izrazu
  • funkciju preg_quote,
    koja ekranizuje specijalne karaktere u regularnim izrazima