Preg_last_error funksiýasy
preg_last_error funksiýasy regýlar ifadeleri bilen işlemek üçin funksiýalaryň işi wagtynda ýüze çykan iň soňky ýalňyşlygyň kodyny gaýtarýar.
Bu, preg_match ýa-da preg_replace ýaly funksiýalar false gaýtaran wagty regýlar ifadelerini düzetmek üçin peýdaly.
Funksiýa parametrleri kabul etmeýär.
Funksiýa ýalňyşlygyň san kodyny gaýtarýar. Ýalňyşlyk kody aşakdaky tablisada görkezilen ýörite konstantalar bilen deňeşdirip bolýar.
Sintaksis
preg_last_error(): int;
Ýalňyşlyk konstantalary bilen tablisa
| Konstanta | Maniý | Düşündiriş |
|---|---|---|
PREG_NO_ERROR |
0 | Hiç hili ýalňyşlyk bolmady |
PREG_INTERNAL_ERROR |
1 | PCRE-iň içerki ýalňyşlygy |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Yza gözlemek limity aşyldy (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Rekursiýa limity aşyldy |
PREG_BAD_UTF8_ERROR |
4 | Nädogry UTF-8 maglumatlar |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Pozisiýa dogry UTF-8 kodynyň başyna gabat gelmeýär |
PREG_JIT_STACKLIMIT_ERROR |
6 | JIT compiler stek limity aşyldy |
Mysal
Nädogry regýlar ifadesinden soň ýalňyşlygy barlaýarys:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Koduň ýerine ýetiriliş netijesi:
4
Mysal
PCRE ýalňyşlyk konstantalary bilen ulanmak:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Koduň ýerine ýetiriliş netijesi:
'Backtrack limit was exhausted'
Şeýle-de görüň
-
preg_matchfunksiýasyny,
regýlar ifadesi boýunça gözleg ýerine ýetirýän -
preg_replacefunksiýasyny,
regýlar ifadesi boýunça çalşymany ýerine ýetirýän -
preg_quotefunksiýasyny,
regýlar ifadelerindäki ýörite nyşanlary gorýan