PHP တွင် HTML_entity_Decode function ကို HTML အဖွဲ့အစည်းများ ( ဥပမာ - amp ; amp ) သို့ပြန်သွားရန်အသုံးပြုသည် ။ ဤလုပ်ဆောင်ချက်သည်များသောအားဖြင့်အကြောင်းအရာများကိုပုံမှန်အားဖြင့် htmlspecialchars သို့မဟုတ် htmlspecialchars များသို့မဟုတ်ပုံမှန် display အတွက် htmlenties များမှ တဆင့်ဝက်ဘ်စာမျက်နှာတွင် encoded encoded forming ကိုပြောင်းလဲရန်အသုံးပြုသည်။ သို့သော်အမှန်တကယ်အသုံးပြုမှုတွင်အချို့သော developer တချို့က encoding parameter တွေကို html_entity_decode သို့ပြောင်းရွှေ့ခဲ့ကြသော်လည်း parameter သည်မျှော်လင့်ထားသည့်အတိုင်းပြောင်းလဲခြင်းကိုဖြစ်ပေါ်စေသည်မဟုတ်ကြောင်းတွေ့ရှိရသည်။
ဤဆောင်းပါးသည်ဤပြ problem နာကိုဖြစ်ပေါ်စေပြီး၎င်းကိုရှောင်ရှားရန်နည်းလမ်းများပေးသည့်အသုံးများသောအမှားများကိုခွဲခြမ်းစိတ်ဖြာပါလိမ့်မည်။
html_entity_decode function တွင် parameters သုံးခုရှိသည်။
String : ပြောင်းလဲခံရဖို့ string ကို။
အလံများ - ကူးပြောင်းခြင်းအပြုအမူကိုထိန်းချုပ်သောအလံလွှင့်ထူသော parameter သည်။
encoding : UTF-8 , ISO-8859-1 ကို အသုံးပြု. များသောအားဖြင့် utoding format ကိုသတ်မှတ်ပါ။
အကယ်. encoding parameter သည်မှားယွင်းစွာမမှန်ကန်ပါကသို့မဟုတ်မှန်ကန်စွာမသတ်မှတ်ထားပါက၎င်းသည် function ကိုစာလုံးများကိုမှန်ကန်စွာပြောင်းလဲရန်ပျက်ကွက်စေနိုင်သည်။ သာမန်အမှားများမှာ:
မမှန်ကန်သောဇာတ်ကောင် encoding (ဥပမာ GBK တွင်ဖြတ်သန်းသွားသောလမ်းကြောင်း, အမှန်တကယ်ဇာတ်ကောင်အစုံသည် UTF-8 ) ဖြစ်သည်။
encoding encoding parameters တွေကိုလျစ်လျူရှုပြီး default ISO-8859-1 ကို သုံးပါ။
HTML_ENTIT_DECODED ကို ခေါ်ဆိုသည့်အခါမှန်ကန်သော encoding ကိုအတိအလင်းဖော်ပြရန်သေချာပါစေ။ ဥပမာအားဖြင့် UTF-8 ဟု encoded လျှင် code သည်ဤပုံကိုကြည့်သင့်သည်။
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;div&gt;Hello World&lt;/div&gt;'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span></span>သင် encoding format ကိုအတိအလင်းဖော်ပြထားရင်တောင်အမှန်တကယ်ဒေတာ၏ encoding သည်သတ်မှတ်ထားသော encoding နှင့်မကိုက်ညီပါက function သည်မှန်ကန်စွာ ပြောင်းလဲ. မရပါ။ ဥပမာအားဖြင့်, ဒေတာဘေ့စ်တွင်သိမ်းဆည်းထားသောအချက်အလက်များမှာ UTF-8 encoding ဖြစ်ပြီးသင် ISO-8859-1 တွင် html_entity_decode တွင်သင်ဖြတ်သန်းသွားမည်မဟုတ်ဘဲပြောင်းလဲခြင်းသည်မျှော်လင့်ထားသည့်အတိုင်းအလုပ်မလုပ်ပါ။
encoding ပြောင်းလဲခြင်းကိုပြုပြင်သည့်အခါ string ကို၏ encoding သတ်မှတ်ထားသော encoding format နဲ့ကိုက်ညီကြောင်းသေချာပါစေ။ string တစ်ခု၏အမှန်တကယ် encoding ကိုရှာဖွေရန် MB_Detect_encoding () ကိုသုံးနိုင်သည်။
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&lt;div&gt;Hello World&lt;/div&gt;'</span></span><span>;
</span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_detect_encoding</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_list_encodings</span></span><span>(), </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-variable">$encoding</span></span><span>);
</span></span>HTML_entity_Decode ၏ဒုတိယ pareter သည်ပြောင်းလဲခြင်းအပြုအမူကိုထိန်းချုပ်သောအလံ parameter (အလံ) ဖြစ်သည်။ ဥပမာအားဖြင့်:
ent_noquotes : ကိုးကားအမှတ်အသားများ ( & quote and and and and and and leos; ) ကိုမပြောင်းပါနှင့်။
ent_quotes : နှစ်ဆနှင့်တစ်ခုတည်းကိုးကားပြောင်းလဲပါ။
ent_html401 , ent_xml1 စသည်တို့ကို။ : HTML သို့မဟုတ် XML နှင့်သက်ဆိုင်သောပြောင်းလဲခြင်းစည်းမျဉ်းများကိုသတ်မှတ်ပါ။
သင့်လျော်သောအလံသတ်မှတ်ချက်များကိုမသတ်မှတ်ပါကအချို့သောဇာတ်ကောင်များသည်မျှော်လင့်ထားသည့်အတိုင်းပြောင်းလဲမည်မဟုတ်ပါ။
လိုအပ်သည့်အတိုင်းမှန်ကန်သောနိမိတ်လက်ခဏာကိုရွေးချယ်ပါ။ ဥပမာအားဖြင့်, သင်သည်ကိုးကားချက်များအပါအ 0 င် entity ဇာတ်ကောင်များအားလုံးကိုပြောင်းလဲလိုပါက ent_quotes များကို သုံးနိုင်သည်။
<span><span><span class="hljs-variable">$html</span></span><span> = </span><span><span class="hljs-string">'&quot;Hello&quot;'</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-variable">$html</span></span><span>, ENT_QUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း: "Hello"</span></span><span>
</span></span>တစ်ခါတစ်ရံတွင်ကြိုးများသည်အကြိမ်ပေါင်းများစွာ encoded ခဲ့ကြသည်။ string ကို htmlspecialchars များ ကတစ်ကြိမ် encoded လုပ်ပြီးနောက် html_entity_decode မှ decoded ။ ဤအချိန်တွင်မှန်ကန်စွာကိုင်တွယ်နိုင်ခြင်းမရှိသေးပါက decoding သည်မမှန်ကန်ပါသို့မဟုတ်မပြည့်စုံပါလိမ့်မည်။
encoded string ကိုအကြိမ်ကြိမ် encoded သို့မဟုတ် decoded မဖြစ်ကြောင်းသေချာပါစေ။ string ၏အခြေအနေနှင့် ပတ်သက်. သင်မသေချာပါက HTML_ENTITY_DECODE ကို ဦး စွာလုပ်နိုင်သည်, ထို့နောက် decoding ရလဒ်ကိုစစ်ဆေးပါ,
php php html_entity_decode function ကိုအကောင်အထည်ဖော်မှုသည်ကွဲပြားခြားနားသောဗားရှင်းများတွင်အနည်းငယ်ကွဲပြားနိုင်သည်။ အချို့သော PHP ဗားရှင်းများသည်အချို့သော encoding ပုံစံများသို့မဟုတ်အလံသတ်မှတ်ချက်များကိုအပြည့်အ 0 မထောက်ပံ့နိုင်ပါ။
သင်အသုံးပြုနေသော PHP ဗားရှင်းသည်အသစ်အဆန်းဖြစ်သည်ကိုသေချာအောင်လုပ်ပြီး html_entity_decode ၏အပြုအမူကိုအတည်ပြုရန်သင့်လျော်သောစာရွက်စာတမ်းများကိုပြန်လည်သုံးသပ်ပါ။ PHP အသစ်များသို့အဆင့်မြှင့်တင်ခြင်းသည်ဤသဟဇာတဖြစ်သောပြ issues နာများကိုမကြာခဏဖြေရှင်းပေးသည်။
HTML_ENTIT_DECODED သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ ဤအသေးစိတ်အချက်အလက်များကိုဂရုတစိုက်ဆန်းစစ်ခြင်းအားဖြင့်လုပ်ဆောင်မှုသည်မျှော်လင့်ထားသည့်အတိုင်းလုပ်ဆောင်နိုင်ပြီးအခြေအနေများပျက်စီးမရရှိနိုင်သည့်အခြေအနေများကိုရှောင်ရှားနိုင်သည်။
ဤဆောင်းပါးသည်သင့်အားသင်၏နားလည်မှုကိုနားလည်ရန်နှင့်ပြ the နာ ကို HTML_ENTITY_Decode encoding parameters များသည်ထိရောက်မှုမရှိသောပြ the နာကိုနားလည်ပြီးဖြေရှင်းနိုင်လိမ့်မည်ဟုကျွန်ုပ်မျှော်လင့်ပါသည်။