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ක්රියාව,
නිත්ය ප්රකාශනවල විශේෂ අක්ෂර සඟවයි