फ़ंक्शन 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,
    जो रेगुलर एक्सप्रेशन में विशेष वर्णों को एस्केप करता है