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 'Артка карай изилдөө чеги тарып бүттү';
}
?>
Кодду иштетүүнүн натыйжасы:
'Артка карай изилдөө чеги тарып бүттү'
Дагы караңыз
-
preg_matchфункциясын,
ал регулярдык туюнтма боюнча издөө ишин аткарат -
preg_replaceфункциясын,
ал регулярдык туюнтма боюнча алмаштыруу ишин аткарат -
preg_quoteфункциясын,
ал регулярдык туюнтмалардагы атайын символдорду экраңдайт