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 ဖန်ရှင်၊
    အကြောင်းမှာ ပုံမှန်အီဂျစ်ရှင်းများရှိ အထူးအက္ခရာများကို ကာကွယ်ပေးသည်