Preg_last_error ֆունկցիա

preg_last_error ֆունկցիան վերադարձնում է վերջին սխալի կոդը, որը առաջացել է կանոնավոր արտահայտությունների հետ աշխատող ֆունկցիաների աշխատանքի ժամանակ: Սա օգտակար է կանոնավոր արտահայտությունների վրիպազերծման համար, երբ ֆունկցիաները, ինչպիսիք են preg_match կամ preg_replace, վերադարձնում են false: Ֆունկցիան պարամետրեր չի ընդունում:

Ֆունկցիան վերադարձնում է ամբողջ թվային սխալի կոդ: Հարմարության համար սխալի կոդը կարելի է համեմատել հատուկ հաստատունների հետ (տես ստորև բերված աղյուսակը):

Շարահյուսություն

phppreg_last_error(): int;

Սխալների հաստատունների աղյուսակ

Հաստատուն Արժեք Նկարագրություն
PREG_NO_ERROR 0 Սխալներ չեն առաջացել
PREG_INTERNAL_ERROR 1 PCRE ներքին սխալ
PREG_BACKTRACK_LIMIT_ERROR 2 Գերազանցվել է հետահայաց որոնման սահմանաչափը (backtrack limit)
PREG_RECURSION_LIMIT_ERROR 3 Գերազանցվել է ռեկուրսիայի սահմանաչափը
PREG_BAD_UTF8_ERROR 4 Անվավեր UTF-8 տվյալներ
PREG_BAD_UTF8_OFFSET_ERROR 5 Կորդինատը չի համապատասխանում վավեր UTF-8 կոդի սկզբին
PREG_JIT_STACKLIMIT_ERROR 6 Գերազանցվել է JIT կոմպիլյատորի ստեկի սահմանաչափը

Օրինակ

Ստուգենք սխալը անվավեր կանոնավոր արտահայտությունից հետո.

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

Կոդի կատարման արդյունք.

php4

Օրինակ

Օգտագործումը PCRE սխալների հաստատունների հետ.

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

Կոդի կատարման արդյունք.

php'Backtrack limit was exhausted'

Տես նաև

  • preg_match ֆունկցիան,
    որը կատարում է որոնում կանոնավոր արտահայտությամբ
  • preg_replace ֆունկցիան,
    որը կատարում է փոխարինում կանոնավոր արտահայտությամբ
  • preg_quote ֆունկցիան,
    որը էկրանավորում է հատուկ նիշերը կանոնավոր արտահայտություններում