फ़ंक्शन preg_last_error
फ़ंक्शन preg_last_error रेगुलर एक्सप्रेशन से संबंधित फ़ंक्शन के काम करने के दौरान हुई अंतिम त्रुटि का कोड लौटाता है।
यह रेगुलर एक्सप्रेशन को डीबग करने के लिए उपयोगी होता है, जब
preg_match या preg_replace जैसे फ़ंक्शन false लौटाते हैं।
फ़ंक्शन कोई पैरामीटर नहीं लेता है।
फ़ंक्शन एक पूर्णांक त्रुटि कोड लौटाता है। सुविधा के लिए, त्रुटि कोड की तुलना विशेष कॉन्स्टेंट्स से की जा सकती है (नीचे दी गई तालिका देखें)।
सिंटैक्स
preg_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
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
कोड निष्पादन का परिणाम:
4
उदाहरण
PCRE त्रुटि कॉन्स्टेंट्स के साथ उपयोग:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
कोड निष्पादन का परिणाम:
'Backtrack limit was exhausted'
यह भी देखें
-
फ़ंक्शन
preg_match,
जो रेगुलर एक्सप्रेशन के अनुसार खोज करता है -
फ़ंक्शन
preg_replace,
जो रेगुलर एक्सप्रेशन के अनुसार प्रतिस्थापन करता है -
फ़ंक्शन
preg_quote,
जो रेगुलर एक्सप्रेशन में विशेष वर्णों को एस्केप करता है