A preg_last_error függvény

A preg_last_error függvény visszaadja a legutóbbi hiba kódját, amely a reguláris kifejezésekkel dolgozó függvények használata során történt. Ez hasznos a reguláris kifejezések hibakereséséhez, amikor olyan függvények, mint a preg_match vagy a preg_replace false értéket adnak vissza. A függvény nem fogad paramétereket.

A függvény egy egész számként adja vissza a hiba kódját. A kényelem kedvéért a hiba kódját össze lehet hasonlítani különleges konstansokkal (lásd az alábbi táblázatot).

Szintaxis

phppreg_last_error(): int;

Táblázat a hibakonstansokkal

Konstans Érték Leírás
PREG_NO_ERROR 0 Nem történt hiba
PREG_INTERNAL_ERROR 1 Belső PCRE hiba
PREG_BACKTRACK_LIMIT_ERROR 2 A backtrack korlát túllépve (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 A rekurzió korlátja túllépve
PREG_BAD_UTF8_ERROR 4 Helytelen UTF-8 adat
PREG_BAD_UTF8_OFFSET_ERROR 5 Az eltolás nem felel meg egy érvényes UTF-8 kód kezdetének
PREG_JIT_STACKLIMIT_ERROR 6 A JIT fordító veremkorlátja túllépve

Példa

Ellenőrizzünk egy hibát egy helytelen reguláris kifejezés után:

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

A kód végrehajtásának eredménye:

php4

Példa

Használat PCRE hibakonstansokkal:

php<?php
  preg_match('/(?:\D+/', 'abc123');
  if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'A backtrack korlát kimerült';
  }
?>

A kód végrehajtásának eredménye:

php'A backtrack korlát kimerült'

Lásd még

  • a preg_match függvényt,
    amely reguláris kifejezésre keres
  • a preg_replace függvényt,
    amely reguláris kifejezésre cserél
  • a preg_quote függvényt,
    amely a speciális karaktereket escape-eli a reguláris kifejezésekben