Error Management သည် PHP ကို XML ကိုအသုံးပြုမည့် PHP ကိုအသုံးပြုသောအခါအဓိကချိတ်ဆက်မှုတစ်ခုဖြစ်သည်။ XML parsing အမှားများကို debugging လုပ်ပြီးကိုင်တွယ်ဖြေရှင်းသည့်အခါ PHP သည် XML အမှားအယွင်းများနှင့်ဆက်စပ်သောလုပ်ငန်းဆောင်တာအမျိုးမျိုးကိုထောက်ပံ့ပေးသည် ။ မှန်ကန်သောနားလည်မှုနှင့်၎င်းတို့ကို အသုံးပြု. ၎င်းတို့ကိုအသုံးပြုခြင်းသည်အမှားအယွင်းများကိုညစ်ညမ်းစေပြီးပရိုဂရမ်အား 0 င်ရောက်ခြင်းနှင့်ထိန်းသိမ်းခြင်းကိုတိုးတက်စေသည်။
PHP သည် XML ကိုခွဲခြမ်းစိတ်ဖြာရန် LibxMl စာကြည့်တိုက်ကိုအသုံးပြုသည်။ အတွင်းပိုင်းအမှားတစ်ခုမှတဆင့်အမှားအချက်အလက်များကိုစုဆောင်းသည်။ ခွဲခြမ်းစိတ်ဖြာလုပ်ဆောင်မှုတွင်အမှားတစ်ခုဖြစ်ပေါ်လာတိုင်းဤအမှားများကို stack ပေါ်တွင်စုဆောင်းသည်။ အကယ်. ၎င်းကိုအချိန်မီမသန့်ရှင်းပါကလာမည့်ခွဲခြမ်းစိတ်ဖြာမှုတွင် "ကျန်နေတဲ့" အမှားအယွင်းအမှားများကိုသင်ကြုံတွေ့ရလိမ့်မည်။
အဘယ်ကြောင့် libxml_clear_Encors () သည်အလွန်အရေးကြီးသော function တစ်ခုဖြစ်သည်။ ၎င်းသည်လက်ရှိအမှား stack ကိုရှင်းရှင်းလင်းလင်းဖော်ပြရန်အသုံးပြုသည်။
ပထမ ဦး စွာက xml_get_error_code () XML_ERGRORE_CREETE () နှင့် libxml_clear_clear_clear_clears () ) နှင့် LibxMl_clear_clear_clear_clears ()) နှင့် LibxMl_clear_Cllear_Cllears () ကို အသုံးပြု. DomDocoCumml နှင့် Simplexml ကဲ့သို့သောခေတ်မီခွဲခြမ်းစိတ်ဖြာခြင်းအတွက် အသုံးပြု သည်။
နှစ်ခုကိုအရောအနှောတွင်အသုံးမပြုပါ။ သို့သော်၎င်းတို့၏ယန္တရားကိုနားလည်ခြင်းနှင့်ပေါင်းစပ်ပြီးကွဲပြားခြားနားသောအခြေအနေများတွင်သင့်လျော်သောလုပ်ဆောင်ချက်များကိုရွေးချယ်နိုင်သည်။
အောက်ပါဥပမာသည် DomDocument မှပေါ်ပေါက်လာသောအမှားတစ်ခုကိုသန့်ရှင်းရေးလုပ်ရန် LibxML_CLEAR_CLEAR_CLEAR_ECLEAR_CLEAR_CLEAR_CLEAR_CLEARS () ကို မည်သို့အသုံးပြုရမည်ကိုပြသပြီးအမှားမက်ဆေ့ခ်ျများကိုလက်တွေ့ကျကျကိုင်တွယ်ရန်မည်သို့ရှင်းပြသည်။
libxml_use_internal_errors(true);
$doc = new DOMDocument();
$doc->loadXML('<root><invalid></root>'); // အမှား:တံဆိပ်မပိတ်ပါ
$errors = libxml_get_errors();
foreach ($errors as $error) {
echo displayXmlError($error), "\n";
}
// 清理အမှား堆栈
libxml_clear_errors();
Helper function displayxmlerror () အမှားအယွင်းများ output ကိုအလှဆင်နိုင်သည်။
function displayXmlError($error)
{
switch ($error->level) {
case LIBXML_ERR_WARNING:
$return = "အသိပေး {$error->code}: ";
break;
case LIBXML_ERR_ERROR:
$return = "အမှား {$error->code}: ";
break;
case LIBXML_ERR_FATAL:
$return = "致命အမှား {$error->code}: ";
break;
}
$return .= trim($error->message);
$return .= " အိုကေ: {$error->line}, စာရင်း: {$error->column}";
return $return;
}
ဤတွင်ကျွန်ုပ်တို့သည် LibxMl_use_internal_Errors (True) ကိုဖွင့်ပေးသည်။ ထို့နောက်အမှားအယွင်းများအားလုံးသည် libxml_get_Ergors () မှတစ်ဆင့်ရရှိသောကြောင့်၎င်းကိုလက်ဖြင့်ပြုလုပ်ပြီးနောက်ဆုံးတွင် LibxML_Clear_Clear_clear_clear_clear_Clerors () သည် XML parsing နှင့် 0 င်ရောက်စွက်ဖက်မှုမရှိကြောင်းသေချာစေရန်။
အကယ်. သင်သည်ဖြစ်ရပ်မှန်မောင်းနှင်သည့်အမွေကိုအသုံးပြုနေပါက -
$parser = xml_parser_create();
if (!xml_parse($parser, '<root><invalid></root>')) {
$errorCode = xml_get_error_code($parser);
$errorString = xml_error_string($errorCode);
echo "XML အမှား: {$errorString}";
}
xml_parser_free($parser);
ဤတွင် XML_GEget_error_code () ကိုနောက်ဆုံးပေါ်အမှားကုဒ်ရရန်အသုံးပြုသည်။ သို့သော်ဤနည်းလမ်း သည် အမှားအယွင်းများကိုမစုဆောင်းပါ,
သင့်တော်သော parser ကိုရွေးချယ်ပါ ။ DomDocument သို့မဟုတ် Simplexml ကို အသုံးပြုရန်ကြိုးစားပါ။ ၎င်းကိုပိုမိုအစွမ်းထက်။ စီမံရန်လွယ်ကူသည့် libxml_ * function ကိုပေါင်းစပ်ပါ။
ပြုပြင်ခြင်းပြီးနောက်ချက်ချင်းသန့်ရှင်း ပါ ။
Ernapsulation အမှားကိုင်တွယ်ပုံကိုကိုင်တွယ်ခြင်းယုတ္တိဗေဒ - parsing နှင့်အမှားများကိုကိုင်တွယ်ဖြေရှင်းခြင်းများကိုကိုင်တွယ်ခြင်းနှင့်အမှားများကိုကိုင်တွယ်ဖြေရှင်းခြင်း,
စမ်းသပ်ခြင်းနှင့် debugging : Debug ပတ် 0 န်းကျင်တွင် Debug ပတ် 0 န်းကျင်တွင်အသေးစိတ်အမှားရလဒ်များကိုဖွင့်ပါ,
XML ကိုကိုင်တွယ်ရန်သင်မည်သည့်နည်းလမ်းဖြင့်အသုံးပြုပါစေအမှားအယွင်းများကိုနားလည်သဘောပေါက်ခြင်းနှင့်သန့်ရှင်းရေးပြုလုပ်ခြင်းသည်ပရိုဂရမ်တည်ငြိမ်မှုကိုသေချာစေရန်အဓိကခြေလှမ်းများဖြစ်သည်။ LibxML_Clear_Elarors () ကို အသုံးပြုခြင်းသည်အမှားအယွင်းများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ ကျိုးကြောင်းဆီလျော်စွာရွေးချယ်ခြင်းနှင့်ပေါင်းစပ်ခြင်းကဤနှစ်ခုကိုပေါင်းစပ်ခြင်းကသင့်အားပိုမိုခိုင်မာသည့်နှင့်ထိန်းသိမ်းခြင်း XML processing logic ကိုတည်ဆောက်ရန်ကူညီလိမ့်မည်။
နောက်ထပ် XML ကိုင်တွယ်သည့်အလေ့အကျင့်များနှင့်ခြွင်းချက်စီမံခန့်ခွဲမှုမဟာဗျူဟာများအဘို့, https://gitbox.net/artet/artet/artet/artet/artet/artet/artet/artnices/php-xml- ရာ 0 ယ်ခြင်း