preg_last_error ක්‍රියාව

preg_last_error ක්‍රියාව නිත්‍ය ප්‍රකාශන සමග වැඩ කිරීම සඳහා වන ක්‍රියාවලින් හටගත් අවසන් දෝෂයේ කේතය ලබා දෙයි. preg_match හෝ preg_replace වැනි ක්‍රියා false ලබා දෙන විට නිත්‍ය ප්‍රකාශන විදගත කිරීමට මෙය ප්‍රයෝජනවත් වේ. මෙම ක්‍රියාවට පරාමිතීන් අවශ්‍ය නොවේ.

මෙම ක්‍රියාව නිඛිල දෝෂ කේතයක් ලබා දෙයි. පහසුව සඳහා, දෝෂ කේතය විශේෂ නියතයන් සමග සසඳා බැලිය හැකිය (පහත වගුව බලන්න).

වාක්‍ය රචනය

phppreg_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<?php
  preg_match('/invalid(regex/', 'test');
  $error_code = preg_last_error();
  echo $error_code;
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

php4

උදාහරණය

PCRE දෝෂ නියතයන් සමග භාවිතය:

php<?php
  preg_match('/(?:\D+/', 'abc123');
  if (preg_last_error() === PREG_BACKTRACK_LIMIT_ERROR) {
    echo 'Backtrack limit was exhausted';
  }
?>

කේතය ක්‍රියාත්මක කිරීමේ ප්‍රතිඵලය:

php'Backtrack limit was exhausted'

මෙයද බලන්න

  • preg_match ක්‍රියාව,
    නිත්‍ය ප්‍රකාශනයකට අනුව සෙවීමක් ක්‍රියාත්මක කරයි
  • preg_replace ක්‍රියාව,
    නිත්‍ය ප්‍රකාශනයකට අනුව ප්‍රතිස්ථාපනයක් ක්‍රියාත්මක කරයි
  • preg_quote ක්‍රියාව,
    නිත්‍ය ප්‍රකාශනවල විශේෂ අක්ෂර සඟවයි