လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> XML parser ၏ character encoding settings ကိုစစ်ဆေးရန် XML_Parser_Get_option ကိုသုံးပါ

XML parser ၏ character encoding settings ကိုစစ်ဆေးရန် XML_Parser_Get_option ကိုသုံးပါ

gitbox 2025-05-29

XML_Parser_Get_option () မိတ်ဆက်ခြင်း ()

XML_Parser_Get_option () ကို XML parser အတွက်ချိန်ညှိချက်များကိုရရှိရန်အသုံးပြုသည်။ function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 mixed xml_parser_get_option(resource $parser, int $option)

XML_Parser_create () သို့မဟုတ်ဆက်စပ်လုပ်ဆောင်ချက်များကိုဖန်တီးထားသော parser ၏ parser အရင်းအမြစ်တစ်ခုဖြစ်ပြီး $ MAPL_OPTOOT_TARGT_ENCOCTING , XML_OPTOON_COUCTING , XML_OPTOOTE_FORDING ကဲ့သို့သော $ option သည်သင်ရရှိနိုင်သော parser ၏ parser ဖြစ်သည်။

ချိန်ညှိရေးပစ္စည်းတည်ရှိပါက function သည်၎င်း၏လက်ရှိတန်ဖိုးကိုပြန်ပို့သည်။ ဒီလိုမှမဟုတ်ရင် မှားယွင်းတဲ့ ပြန်လာတယ်။


ဘုံရွေးချယ်စရာရှင်းလင်းချက်

ဆက်စပ်သောအဘို့, အသုံးအများဆုံးရွေးချယ်စရာများမှာ -

 XML_OPTION_TARGET_ENCODING

ဤရွေးချယ်မှုသည် PHP တွင်ရရှိနိုင်သည့် strings များအဖြစ်ကိုယ်စားပြုသည့်အတွင်းပိုင်းစာလုံးများကိုမည်သို့ပြောင်းလဲပေးသည်ကိုဆုံးဖြတ်သည်။ ပုံမှန်တန်ဖိုးမှာ "UTF-8" သို့မဟုတ် "ISO-8859-1" သို့မဟုတ် "US-ASCII" ဖြစ်သည်။


မှတ်ချက် 1: ပစ်မှတ် encoding နှင့်အရင်းအမြစ် encoding အကြားခြားနားချက်ကိုနားလည်ပါ

XML_Parser_Get_option () သည် parser output encoding ကို မူလ XML ဖိုင်၏ encoding မဟုတ်ဘဲ parser output ence ၏ encoding ကိုပြန်ပို့သည်။ မူရင်း XML ဖိုင်၏ encoding ကို XML ကြေငြာချက်ဖြင့်သတ်မှတ်သည်။

 <?xml version="1.0" encoding="ISO-8859-1"?>

xml-8859-1, XML_Parser_Get_option () XML_Parser_Get_option () XML_Parser_Get_option () သည် "UTF-8" ကိုပြန်ပို့လိမ့်မည်။


မှတ်ချက် 2: setting ကိုနှင့်ရယူအကြားသက်ဆိုင်ရာဆက်ဆံရေး

သင် default target encoding ကိုပြုပြင်ရန်စီစဉ်ထားပါက xml_parser_set_option () ကို သုံးနိုင်သည်။

 $parser = xml_parser_create();
xml_parser_set_option($parser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1");

ထို့နောက် setting ကိုအောင်မြင်ရန် XML_Parser_Get_option () ကို သုံးပါ။

 $encoding = xml_parser_get_option($parser, XML_OPTION_TARGET_ENCODING);
echo "လက်ရှိ encoding:$encoding";

ကျိုးနွံစွာ encoding ကိုမထောက်ပံ့ကြောင်းသတိပြုပါ။


Note 3- ကိုက်ညီမှုမရှိသောဖိုင်စီးဆင်းမှုနှင့် encoding သည်အမှားအယွင်းများဖြစ်ပေါ်စေနိုင်သည်

အကယ်. XML ဖိုင်ကိုဖတ်ပါ။ အကယ်. Target Encoding နှင့် ASCII မဟုတ်သောဇာတ်ကောင်များပါ 0 င်သည့်ဇာတ်ကောင်သတ်မှတ်ချက်ကိုအသုံးပြုပါက PHP parser သည်အမှားတစ်ခုသို့ပစ်ချနိုင်သည်။ ထို့ကြောင့် အရင်းအမြစ်ဖိုင်၏အမှန်တကယ် encoding သည် ကြေငြာချက်နှင့်ကိုက်ညီပြီးပစ်မှတ် encoding နှင့်သဟဇာတဖြစ်သည်ကိုသေချာစေရန်အလွန်အရေးကြီးသည်။

ဖိုင်၏မူရင်း encoding ကို MB_Detect_encoding () မှတဆင့်ရှာဖွေတွေ့ရှိနိုင်သည်။ လိုအပ်ပါက MB_ConVert_encoding () ကို သုံးပါ။

 $xml = file_get_contents("https://gitbox.net/data/sample.xml");
$xml = mb_convert_encoding($xml, "UTF-8", "auto");
$parser = xml_parser_create("UTF-8");
xml_parse($parser, $xml, true);

မှတ်ချက် 4: parser ဥပမာအားဖြင့်ခွဲခြား

parser ဥပမာတစ်ခုချင်းစီကိုလွတ်လပ်သောဖြစ်ပါတယ်။ ချိန်ညှိချက်များရယူသည့်အခါသင်သည် မှန်ကန်သော parser အရင်းအမြစ် တွင်သင်အောင်မြင်ရန်သေချာအောင်လုပ်ပါ။ XML ဖိုင်များနှင့်အတူတစ်ပြိုင်နက်တည်း xml ဖိုင်များနှင့်တစ်ပြိုင်နက်တည်းအလုပ်လုပ်သောအခါ၎င်းသည် parser ယုတ္တိဗေဒကိုအတန်းထဲတွင်အလုပ်မလုပ်သောအခါအထူးသဖြင့်အရေးကြီးသည်။


မှတ်ချက် 5. LibxMl extension နှင့်တိုက်ရိုက်ဆက်နွယ်မှုမရှိပါ

XML_Parser_Get_option () libxml-based dom သို့မဟုတ် simplexml မဟုတ်ဘဲ Expat parser interface ကိုပိုင်ဆိုင်သည်, ထို့ကြောင့်ဤ extensions များအတွက်အသုံးမပြုနိုင်ပါ။ XML_Parser_Create () ဖြင့်ဖန်တီးသော SAX style parsers နှင့်သာအလုပ်လုပ်သည်။