Preg_last_error funksiýasy

preg_last_error funksiýasy regýlar ifadeleri bilen işlemek üçin funksiýalaryň işi wagtynda ýüze çykan iň soňky ýalňyşlygyň kodyny gaýtarýar. Bu, preg_match ýa-da preg_replace ýaly funksiýalar false gaýtaran wagty regýlar ifadelerini düzetmek üçin peýdaly. Funksiýa parametrleri kabul etmeýär.

Funksiýa ýalňyşlygyň san kodyny gaýtarýar. Ýalňyşlyk kody aşakdaky tablisada görkezilen ýörite konstantalar bilen deňeşdirip bolýar.

Sintaksis

phppreg_last_error(): int;

Ýalňyşlyk konstantalary bilen tablisa

Konstanta Maniý Düşündiriş
PREG_NO_ERROR 0 Hiç hili ýalňyşlyk bolmady
PREG_INTERNAL_ERROR 1 PCRE-iň içerki ýalňyşlygy
PREG_BACKTRACK_LIMIT_ERROR 2 Yza gözlemek limity aşyldy (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Rekursiýa limity aşyldy
PREG_BAD_UTF8_ERROR 4 Nädogry UTF-8 maglumatlar
PREG_BAD_UTF8_OFFSET_ERROR 5 Pozisiýa dogry UTF-8 kodynyň başyna gabat gelmeýär
PREG_JIT_STACKLIMIT_ERROR 6 JIT compiler stek limity aşyldy

Mysal

Nädogry regýlar ifadesinden soň ýalňyşlygy barlaýarys:

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

Koduň ýerine ýetiriliş netijesi:

php4

Mysal

PCRE ýalňyşlyk konstantalary bilen ulanmak:

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

Koduň ýerine ýetiriliş netijesi:

php'Backtrack limit was exhausted'

Şeýle-de görüň

  • preg_match funksiýasyny,
    regýlar ifadesi boýunça gözleg ýerine ýetirýän
  • preg_replace funksiýasyny,
    regýlar ifadesi boýunça çalşymany ýerine ýetirýän
  • preg_quote funksiýasyny,
    regýlar ifadelerindäki ýörite nyşanlary gorýan