Функсияи 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,
    ки аломатҳои махсусро дар ибораҳои оддӣ экран мекунад