ফাংশন 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,
    যা রেগুলার এক্সপ্রেশনে বিশেষ ক্যারেক্টার গুলি এস্কেপ করে