လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML ခွဲခြမ်းစိတ်ဖြာမှုအပြုအမူကိုပြောင်းလဲလိုပါက xml_set_processing_instruction_instruction_instruction_instruction_instruction_instruction_Handler function play လုပ်နည်း။

XML ခွဲခြမ်းစိတ်ဖြာမှုအပြုအမူကိုပြောင်းလဲလိုပါက xml_set_processing_instruction_instruction_instruction_instruction_instruction_instruction_Handler function play လုပ်နည်း။

gitbox 2025-07-26

PHP တွင် XML ဒေတာများကိုလုပ်ဆောင်သည့်အခါများသောအားဖြင့်သင်သည်များသောအားဖြင့်အခြေအနေအမျိုးမျိုးနှင့်ကြုံတွေ့ရလေ့ရှိသည်။ အကယ်. သင်သည် XML ဖိုင်ကိုခွဲခြမ်းစိတ်ဖြာခြင်းနှင့်ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းသတ်သတ်မှတ်မှတ်အပြောင်းအလဲနဲ့ညွှန်ကြားချက်များအပေါ်စိတ်ကြိုက်အပြုအမူကိုလုပ်ဆောင်လိုပါက XML_SET_Processing_instruction_instruction_INSUCTER_Handler function သည်အသုံးဝင်သည်။

1 ။ ညွှန်ကြားချက်ညွှန်ကြားချက်ကဘာလဲ?

XML စာရွက်စာတမ်းများတွင်ပြုပြင်ခြင်းညွှန်ကြားချက်များသည် xml ၏အချက်အလက်များနှင့်မသက်ဆိုင်သောအသုံးချပရိုဂရမ်များနှင့်မသက်ဆိုင်သော applications များသို့ပေးသည့်ညွှန်ကြားချက်များအတွက်အသုံးပြုသောဖွဲ့စည်းပုံကိုမကြာခဏအသုံးပြုလေ့ရှိသည်။ ညွှန်ကြားချက်များပြုလုပ်ရန် syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-meta">&lt;?target data?&gt;</span></span><span>
</span></span>
  • ပစ်မှတ် ညွှန်ကြားချက်၏ပစ်မှတ်ကိုရည်ညွှန်းသည်။

  • ဒေတာ သည် command target တွင်ပူးတွဲပါရှိသည်။

ဥပမာအားဖြင့်အောက်ပါသည် XML စာရွက်စာတမ်းတစ်ခုအတွက်အပြောင်းအလဲနဲ့ညွှန်ကြားချက်ဥပမာတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?php echo "Hello, World!"; ?&gt;</span></span><span>
</span></span>

ဤညွှန်ကြားချက်သည် PHP code ကို execute လုပ်ရန် Processor ကိုပြောသော်လည်း၎င်းသည် XML အချက်အလက်များ၏အစိတ်အပိုင်းမဟုတ်ပါ။

2 ။ xml_set_processing_instruction_handler ကို ဘာလို့လိုအပ်ရတာလဲ။

XML စာရွက်စာတမ်းများခွဲခြမ်းစိတ်ဖြာသည့်အခါ PHP သည်၎င်းတို့အားမည်သို့ကိုင်တွယ်ရမည်ကိုမပြောလျှင် PHP သည်ပုံမှန်အားဖြင့်ညွှန်ကြားချက်များကိုပုံမှန်အားဖြင့်မပေးချေ။ ယခုအချိန်တွင် XML_SET_STESSING_INSUCTER_Handler သည် အသုံးဝင်သည်။ ဒီ function ကိုမှတစ်ဆင့် XML ခွဲခြမ်းစိတ်ဖြာနေစဉ်အတွင်းအပြောင်းအလဲနဲ့ညွှန်ကြားချက်များကြုံတွေ့ရသည့်အခါခေါ်ဆိုမှုကိုသင်မှတ်ပုံတင်နိုင်သည်။ ဤနည်းအားဖြင့်သင်သည်၎င်းတို့အားကျော်သွားရုံမျှသာမဟုတ်ဘဲညွှန်ကြားချက်များကိုကိုင်တွယ်ခြင်း၏အပြုအမူကိုစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။

3 ။ XML_SESST_PROCESSING_INSUNTER_HANDLER ကို ဘယ်လိုသုံးရမလဲ

xml_set_processing_instruction_instruction_handler function ကို၏လက်မှတ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-title function_ invoke__">xml_set_processing_instruction_handler</span></span><span> ( resource </span><span><span class="hljs-variable">$parser</span></span><span> , </span><span><span class="hljs-keyword">callable</span></span><span> </span><span><span class="hljs-variable">$handler</span></span><span> )
</span></span>
  • $ parser : XML parser အရင်းအမြစ်တစ်ခုဖြစ်သော XML_Parser_Create () မှတဆင့်ဖန်တီးထားသော XML parser အရင်းအမြစ်ဖြစ်သည်။

  • $ handler - ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအပြောင်းအလဲနဲ့ညွှန်ကြားချက်များကြုံတွေ့ရသည့်အခါဟုခေါ်သော callback function ကိုဖြစ်သည်။

callback function ကို၏ parameters တွေကို -

callback function ကို parameters နှစ်ခုကိုလက်ခံရရှိသည်:

  • $ Target : အပြောင်းအလဲနဲ့ညွှန်ကြားချက်၏ပစ်မှတ် (XML ရှိ ပစ်မှတ်ထား အပိုင်း) ၏ပစ်မှတ်။

  • $ ဒေတာ : ညွှန်ကြားချက်၏အကြောင်းအရာ (XML ရှိ ဒေတာ အပိုင်း) ၏အကြောင်းအရာကိုလုပ်ဆောင်ပါ။

နမူနာကုဒ်:

XML_SET_Processing_instruction_instructer_Handler ကိုဘယ်လိုသုံးရမလဲဆိုတာပြတဲ့ဥပမာတစ်ခုပါ။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>

</span><span><span class="hljs-comment">// ဖန်တီး XML မိစ်ဆာ</span></span><span>
</span><span><span class="hljs-variable">$parser</span></span><span> = </span><span><span class="hljs-title function_ invoke__">xml_parser_create</span></span><span>();

</span><span><span class="hljs-comment">// ညွှန်ကြားချက်များကိုကိုင်တွယ်သော callback function ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">handle_processing_instruction</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$target</span></span></span><span>, </span><span><span class="hljs-variable">$data</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"အပြောင်းအလဲနဲ့ညွှန်ကြားချက်များ၏ပစ်မှတ်:<span class="hljs-subst">$target</span></span></span><span>\n";
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"ညွှန်ကြားချက်အချက်အလက်များထုတ်ယူခြင်း:<span class="hljs-subst">$data</span></span></span><span>\n";
}

</span><span><span class="hljs-comment">// အပြောင်းအလဲနဲ့ညွှန်ကြားချက်၏အပြောင်းအလဲနဲ့ function ကိုသတ်မှတ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">xml_set_processing_instruction_handler</span></span><span>(</span><span><span class="hljs-variable">$parser</span></span><span>, </span><span><span class="hljs-string">'handle_processing_instruction'</span></span><span>);

</span><span><span class="hljs-comment">// ခွဲခြမ်းစိတ်ဖြာခံရဖို့ XML ကြိုး</span></span><span>
</span><span><span class="hljs-variable">$xml</span></span><span> = <span class="hljs-string">'&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;?php echo "Hello, World!"; ?&gt;
&lt;note&gt;
    &lt;to&gt;Tove&lt;/to&gt;
    &lt;from&gt;Jani&lt;/from&gt;
    &lt;heading&gt;Reminder&lt;/heading&gt;
    &lt;body&gt;Don'</span>t forget me this weekend!&lt;/body&gt;
&lt;/note&gt;<span class="hljs-string">';

// သုံးသပ်ကြည့်ရှုခြင်း XML
if (!xml_parse($parser, $xml, true)) {
    die(sprintf("XMLသုံးသပ်ကြည့်ရှုခြင်း错误: %s at line %d", xml_error_string(xml_get_error_code($parser)), xml_get_current_line_number($parser)));
}

// 释放မိစ်ဆာ
xml_parser_free($parser);
?&gt;
</span></span></span>

ထုတ်လုပ်မှု -

 <span><span>အပြောင်းအလဲနဲ့ညွှန်ကြားချက်များ၏ပစ်မှတ်:php
ညွှန်ကြားချက်အချက်အလက်များထုတ်ယူခြင်း:echo "Hello, World!";
</span></span>

ဤဥပမာတွင်အပြောင်းအလဲနဲ့လမ်းညွှန် <? Php Echo "Hello, World!"; ?> XML တွင် callback function ကိုဖမ်းယူခြင်းနှင့်ညွှန်ကြားချက်၏ပစ်မှတ်နှင့်ဒေတာများကိုထုတ်ယူသည်။

4 ။ XML_SET_PROCESSING_INSUCTER_INSUNTER_HANDLER ၏အမှန်တကယ် application

အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် processing ညွှန်ကြားချက်များကို XML ဖိုင်များ၏လုပ်ဆောင်မှုစီးဆင်းမှုစီးဆင်းမှုကိုထိန်းချုပ်ရန်သို့မဟုတ် applications များကို applications များသို့လွှဲပြောင်းရန်ညွှန်ကြားချက်များကို အသုံးပြု. အသုံးပြုနိုင်သည်။ XML_set_processing_instruction_Instruction_Hander ကို အသုံးပြုခြင်းကသင့်အားဤညွှန်ကြားချက်များကိုအလွယ်တကူလုပ်ဆောင်ရန်နှင့်သင်လိုအပ်သည့်မည်သည့်ယုတ္တိဗေဒကိုမဆိုလုပ်ဆောင်ရန်ခွင့်ပြုသည်။

ဥပမာအားဖြင့်, သင်သည် dynamic ညွှန်ကြားချက်များပါ 0 င်သော XML ဖိုင်တစ်ခုတွင်လုပ်ဆောင်နေသည်ဆိုပါစို့။ သင်သည်ဤညွှန်ကြားချက်များကိုခွဲခြမ်းစိတ်ဖြာနိုင်ပြီးစိတ်ကြိုက်ခေါ်ဆိုမှုလုပ်ဆောင်ချက်များမှတစ်ဆင့်လိုအပ်သောလုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်။

5 ။ မှတ်စုဖို့အရာ

  • xml_set_processing_instruction_handler ကိုအသုံးပြုပြီးဘယ်အချိန်မှာ callback function ကိုတစ်ခုချင်းစီကိုညွှန်ကြားချက်တစ်ခုစီ၏ပစ်မှတ်များနှင့်အချက်အလက်များကိုမှန်ကန်စွာကိုင်တွယ်နိုင်ကြောင်းသေချာပါစေ။

  • အကယ်. သင်၏ XML စာရွက်စာတမ်းတွင်အပြောင်းအလဲများသောညွှန်ကြားချက်များစွာပါ 0 င်ပါက callback function ကိုတစ်ခုချင်းစီအတွက်တစ်ကြိမ်ကွပ်မျက်ခံရလိမ့်မည်။

  • မှတ်ဉာဏ်ယိုစိမ့်မှုကိုရှောင်ရှားရန်ခွဲခြမ်းစိတ်ဖြာပြီးနောက်ခွဲခြမ်းစိတ်ဖြာပြီးနောက် parser ကိုလွှတ်ပေးရန်သေချာပါစေ။

နိဂုံးချုပ်အားဖြင့်

xml_set_processing_instruction_instruction_handler function သည် PHP developer များကို XML ခွဲခြမ်းစိတ်ဖြာစဉ်အတွင်းအပြောင်းအလဲနဲ့ညွှန်ကြားချက်များကိုထိန်းချုပ်ရန်ပြောင်းလွယ်ပြင်လွယ်နည်းလမ်းများဖြင့်ပေးသည်။ callback function ကိုမှတ်ပုံတင်ခြင်းအားဖြင့်, သင်၏လိုအပ်ချက်များနှင့်အညီအပြောင်းအလဲနဲ့ညွှန်ကြားချက်များကိုသင်ပိုမိုရှုပ်ထွေးသော XML ဒေတာများကိုခွဲခြမ်းစိတ်ဖြာခြင်းဖြင့်ပြုလုပ်နိုင်သည်။ ၎င်းသည် PHP ကိုအထူးလိုအပ်ချက်များနှင့်အတူ XML စာရွက်စာတမ်းများကိုကိုင်တွယ်သောအခါ PHP ကိုပိုမိုထိရောက်စွာနှင့်ပြောင်းလွယ်ပြင်လွယ်စေသည်။

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    XML