ფუნქცია 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,
    რომელიც ეკრანიზებს სპეციალურ სიმბოლოებს რეგულარულ გამოსახულებებში