Funktion preg_last_error

Die Funktion preg_last_error gibt den Code des letzten Fehlers zurück, der bei der Arbeit mit Funktionen für Regular-Ausdrücke aufgetreten ist. Dies ist nützlich zum Debuggen von Regular-Ausdrücken, wenn Funktionen wie preg_match oder preg_replace false zurückgeben. Die Funktion akzeptiert keine Parameter.

Die Funktion gibt einen ganzzahligen Fehlercode zurück. Zur Bequemlichkeit kann der Fehlercode mit speziellen Konstanten verglichen werden (siehe Tabelle unten).

Syntax

phppreg_last_error(): int;

Tabelle mit Fehlerkonstanten

Konstante Wert Beschreibung
PREG_NO_ERROR 0 Kein Fehler ist aufgetreten
PREG_INTERNAL_ERROR 1 Interner PCRE-Fehler
PREG_BACKTRACK_LIMIT_ERROR 2 Backtrack-Limit wurde überschritten (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Rekursionslimit wurde überschritten
PREG_BAD_UTF8_ERROR 4 Ungültige UTF-8-Daten
PREG_BAD_UTF8_OFFSET_ERROR 5 Offset entspricht nicht dem Beginn eines gültigen UTF-8-Codes
PREG_JIT_STACKLIMIT_ERROR 6 JIT-Compiler-Stacklimit wurde überschritten

Beispiel

Prüfen eines Fehlers nach einem ungültigen Regular-Ausdruck:

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

Ergebnis der Codeausführung:

php4

Beispiel

Verwendung mit PCRE-Fehlerkonstanten:

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

Ergebnis der Codeausführung:

php'Backtrack limit was exhausted'

Siehe auch

  • die Funktion preg_match,
    die eine Suche mit einem Regular-Ausdruck durchführt
  • die Funktion preg_replace,
    die eine Ersetzung mit einem Regular-Ausdruck durchführt
  • die Funktion preg_quote,
    die Sonderzeichen in Regular-Ausdrücken maskiert