Funktsioon preg_last_error

Funktsioon preg_last_error tagastab viimase vea koodi, mis tekkis regulaaravaldistega töötavate funktsioonide kasutamisel. See on kasulik regulaaravaldiste silumiseks, kui funktsioonid nagu preg_match või preg_replace tagastavad false. Funktsioon ei võta parameetreid.

Funktsioon tagastab täisarvulise veakoodi. Mugavuse huvides saab veakoodi võrrelda spetsiaalsete konstantidega (vt allolevat tabelit).

Süntaks

phppreg_last_error(): int;

Tabel veakonstantidega

Konstant Väärtus Kirjeldus
PREG_NO_ERROR 0 Vigu ei esinenud
PREG_INTERNAL_ERROR 1 PCRE sisemine viga
PREG_BACKTRACK_LIMIT_ERROR 2 Tagasijälgimise limiit on ületatud (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Rekursiooni limiit on ületatud
PREG_BAD_UTF8_ERROR 4 Vigased UTF-8 andmed
PREG_BAD_UTF8_OFFSET_ERROR 5 Nihke ei vasta korraliku UTF-8 koodi algusele
PREG_JIT_STACKLIMIT_ERROR 6 JIT-kompilaatori pinumälu limiit on ületatud

Näide

Kontrollime viga pärast ebakorrektse regulaaravaldise kasutamist:

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

Koodi täitmise tulemus:

php4

Näide

Kasutamine koos PCRE veakonstantidega:

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

Koodi täitmise tulemus:

php'Backtrack limit was exhausted'

Vaata ka

  • funktsiooni preg_match,
    mis sooritab otsingu regulaaravaldise järgi
  • funktsiooni preg_replace,
    mis sooritab asenduse regulaaravaldise järgi
  • funktsiooni preg_quote,
    mis kaitseb erisümboleid regulaaravaldistes