Funksioni preg_last_error
Funksioni preg_last_error kthen kodin e gabimit të fundit,
që ndodhi gjatë punës me funksionet për shprehjet e rregullta.
Kjo është e dobishme për diagnostikimin e shprehjeve të rregullta, kur funksionet
si preg_match ose preg_replace kthejnë false.
Funksioni nuk pranon parametra.
Funksioni kthen një kod të plotë gabimi. Për lehtësi, kodi i gabimit mund të krahasohet me konstante speciale (shih tabelën më poshtë).
Sintaksa
preg_last_error(): int;
Tabela me konstantat e gabimeve
| Konstanta | Vlera | Përshkrimi |
|---|---|---|
PREG_NO_ERROR |
0 | Nuk ka ndodhur asnjë gabim |
PREG_INTERNAL_ERROR |
1 | Gabim i brendshëm PCRE |
PREG_BACKTRACK_LIMIT_ERROR |
2 | Tejkalimi i kufirit të gjurmimit mbrapa (backtrack limit) |
PREG_RECURSION_LIMIT_ERROR |
3 | Tejkalimi i kufirit të rekursionit |
PREG_BAD_UTF8_ERROR |
4 | Të dhëna UTF-8 të pasakta |
PREG_BAD_UTF8_OFFSET_ERROR |
5 | Kompenzimi nuk korrespondon me fillimin e një kodi UTF-8 të saktë |
PREG_JIT_STACKLIMIT_ERROR |
6 | Tejkalimi i kufirit të stackut të kompilatorit JIT |
Shembull
Le të kontrollojmë gabimin pas një shprehjeje të rregullt të pasaktë:
<?php
preg_match('/invalid(regex/', 'test');
$error_code = preg_last_error();
echo $error_code;
?>
Rezultati i ekzekutimit të kodit:
4
Shembull
Përdorimi me konstantat e gabimeve PCRE:
<?php
preg_match('/(?:\D+/', 'abc123');
if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
echo 'Backtrack limit was exhausted';
}
?>
Rezultati i ekzekutimit të kodit:
'Backtrack limit was exhausted'
Shihni gjithashtu
-
funksionin
preg_match,
i cili kryen kërkim sipas shprehjes së rregullt -
funksionin
preg_replace,
i cili kryen zëvendësim sipas shprehjes së rregullt -
funksionin
preg_quote,
i cili ekranon karakteret speciale në shprehjet e rregullta