Funktsiya preg_last_error
Funktsiya preg_last_error muntazam ifodalar bilan ishlash uchun mo‘ljallangan funktsiyalar ishlaganda yuzaga kelgan so‘nggi xato kodini qaytaradi.
Bu preg_match yoki preg_replace kabi funktsiyalar false qaytarganda muntazam ifodalarni tuzatish uchun foydalidir.
Funktsiya parametr qabul qilmaydi.
Funktsiya butun sonli xato kodini qaytaradi. Qulaylik uchun xato kodi maxsus konstantalar bilan solishtirilishi mumkin (quyidagi jadvalga qarang).
Sintaksis
preg_last_error(): int;
Xato konstantalari jadvali
| Konstanta | Qiymat | Tavsif |
|---|---|---|
PREG_NO_ERROR |
0 | Xato yuz bermadi |
PREG_INTERNAL_ERROR |
1 | PCRE ichki xatosi |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Orqaga kuzatish chegarasi (backtrack limit) oshib ketdi |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursiya chegarasi oshib ketdi |
PREG_BAD_UTF8_ERROR |
4 | Noto‘g‘ri UTF-8 ma’lumotlari |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Ofset to‘g‘ri UTF-8 kodining boshiga to‘g‘ri kelmaydi |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT-kompilyator stek chegarasi oshib ketdi |
Misol
Noto‘g‘ri muntazam ifodadan keyin xatoni tekshiramiz:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Kod bajarish natijasi:
4
Misol
PCRE xato konstantalari bilan ishlatish:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Kod bajarish natijasi:
'Backtrack limit was exhausted'
Shuningdek qarang
-
preg_matchfunktsiyasi,
bu muntazam ifoda bo‘yicha qidiruvni amalga oshiradi -
preg_replacefunktsiyasi,
bu muntazam ifoda bo‘yicha almashtirishni amalga oshiradi -
preg_quotefunktsiyasi,
bu muntazam ifodalardagi maxsus belgilarni ekranlaydi