mb_encode_numericalityity function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">mb_encode_numericentity</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-keyword">array</span></span><span> </span><span><span class="hljs-variable">$convmap</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$from_encoding</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$to_encoding</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>
</span></span>$ str : ပြောင်းလဲခံရဖို့ string ကို။
$ Concmap : ဇာတ်ကောင်ပြောင်းလဲခြင်းမြေပုံရေးဆွဲခြင်းသည်ဂဏန်းများကိုဂဏန်းအဖွဲ့အစည်းများသို့ကူးပြောင်းသင့်သည့်နေရာများကိုသတ်မှတ်သည့်ခင်းကျင်းမှုတစ်ခုဖြစ်သည်။
$ မှ - un_encoding : မူရင်းဇာတ်ကောင် set (UTF-8, ISO-8859-1 စသဖြင့်) ။
$ to_encoding : Target Class ဇာတ်ကောင်အစုံ (UTF-8, ISO-8859-1 စသည်) ။
ဒီ function က string ကို string ထဲမှာအက္ခရာများကို HTML (သို့) XML format digital entits သို့ $ Conmap Parameter သည်သတ်မှတ်ထားသည်။ $ Conmap Array ၏ configuration ကိုပြောင်းလဲခြင်းအကျိုးသက်ရောက်မှုအတွက်အရေးပါသည်။
$ conv conmap parameter သည်အက်ခရာ 4 လုံး၏ subarrays များပါ 0 င်သော array တစ်ခုဖြစ်သည်။ ၎င်း၏ဖွဲ့စည်းပုံမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-variable">$convmap</span></span><span> = [
[ဇာတ်ကောင်ကုဒ်ကနေ, ဇာတ်ကောင်ကုဒ်ရန်, ဇာတ်ကောင်အစုံမှ, ဇာတ်ကောင်အစုံရန်],
</span><span><span class="hljs-comment">// ပိုပြီးစည်းမျဉ်းစည်းကမ်းတွေ</span></span><span>
];
</span></span>ဇာတ်ကောင် Code မှ - ဤသည်မှာကိန်းဂဏန်းအဖွဲ့အစည်းတစ်ခု၏ပြောင်းလဲခြင်းအတွက်အစဇာတ်လမ်းကုဒ်ဖြစ်သည်။
Comple Code သို့ - ဤသည်ပြောင်းလဲခြင်း၏အကွာအဝေးကိုသတ်မှတ်ခြင်းသည်ဒစ်ဂျစ်တယ် Endity ပြောင်းလဲခြင်းအတွက်အဆုံးသတ်ဇာတ်ကောင်ကုဒ်ဖြစ်သည်။
ဇာတ်ကောင်အစုံမှ : input string အတွက် encoding အမျိုးအစားကိုသတ်မှတ်ပါ။
ဇာတ်ကောင် set ကိုမှ - များသောအားဖြင့် UTF-8, ပြောင်းလဲထားသောဇာတ်ကောင်အမျိုးအစားကိုသတ်မှတ်ပါ။
ဥပမာအားဖြင့်, ဒေါ်လာစည်းမျဉ်းစည်းကမ်းများကို ပြင်ဆင်သည့်အခါအက္ခရာများကိုဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ကူးပြောင်းမည့်ဇာတ်ကောင်များကိုသတ်မှတ်နိုင်သည်။
$ Conmap Parameter ကိုမှန်ကန်စွာပြင်ဆင်ခြင်းသည်ပြောင်းလဲခြင်းစည်းမျဉ်းများကိုတိကျစွာထိန်းချုပ်ရန်ကူညီနိုင်သည်။ ဤတွင်အချို့သော configuration ကိုသိကောင်းစရာများရှိပါသည်။
အချို့သောသတ်သတ်မှတ်မှတ်ဇာတ်ကောင်များကိုဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ပြောင်းလဲလိုပါကဇာတ်ကောင်ကုဒ်အကွာအဝေးကိုသတ်မှတ်ခြင်းဖြင့်သင်ဤသို့ပြုလုပ်နိုင်သည်။ သင် ascii ဇာတ်ကောင်များထဲမှအခြားစာလုံးများကိုသာပြောင်းရွှေ့လိုသည်ဟုယူဆခြင်းသည် ascii အကွာအဝေးပြင်ပရှိဇာတ်ကောင်ကုဒ်များပါ 0 င်သည့် $ codmap ကို configure လုပ်နိုင်သည်။
<span><span><span class="hljs-variable">$convmap</span></span><span> = [
[</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>]
];
</span></span>ဤပြင်ဆင်မှုသည် UTF-8 encoding range တွင် 0x80 ထက်ကြီးသည် (I.E. Non-ascii ဇာတ်ကောင်များ) နှင့်ညီမျှသောစာလုံးအားလုံးသည်ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်သို့ပြောင်းလဲသွားလိမ့်မည်။
အကယ်. သင်သည် HTML အကြောင်းအရာများကိုအထူးပြု။ အချို့သောအထူးသင်္ကေတများ (ဥပမာ < , > စသည်တို့ ကဲ့သို့) ကို HTML ဒီဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်ပြောင်းလဲလိုပါကသက်ဆိုင်ရာဇာတ်ကောင်အကွာအဝေးကိုသတ်မှတ်ခြင်းဖြင့်သင်လုပ်နိုင်သည်။
<span><span><span class="hljs-variable">$convmap</span></span><span> = [
[</span><span><span class="hljs-number">0x20</span></span><span>, </span><span><span class="hljs-number">0x2F</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>], </span><span><span class="hljs-comment">// ပေြာင်းASCIIပုဒ်ဖြတ်ပုဒ်ရပ်အမှတ်အသားများ</span></span><span>
[</span><span><span class="hljs-number">0x3A</span></span><span>, </span><span><span class="hljs-number">0x40</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>], </span><span><span class="hljs-comment">// ပေြာင်း冒号到@လူသူမ</span></span><span>
];
</span></span>ဤဖွဲ့စည်းပုံအခြေခံဥပဒေပြုလုပ်ပြီးနောက်အခြေအနေများကိုဖြည့်ဆည်းပေးသောဇာတ်ကောင်အားလုံးသည်ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်သို့ပြောင်းလဲလိမ့်မည်။
Unicode အက္ခရာများအတွက်ပိုမိုကျယ်ပြန့်သောအကွာအဝေးကိုဘာသာစကားများနှင့်အထူးသင်္ကေတများကိုစနစ်တကျပြောင်းလဲရန်သေချာစေရန်သတ်မှတ်နိုင်သည်။ ဤနည်းလမ်းသည်လူထုဘာသာစကားမျိုးစုံပါ 0 င်သောအခြေအနေများအတွက်အထူးအသုံးဝင်သည်။
<span><span><span class="hljs-variable">$convmap</span></span><span> = [
[</span><span><span class="hljs-number">0x3000</span></span><span>, </span><span><span class="hljs-number">0x303F</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>], </span><span><span class="hljs-comment">// ပေြာင်းCJKအထိမ်းအမှတ်နှင့်ပုဒ်ဖြတ်ပုဒ်ရပ်အမှတ်အသားများ</span></span><span>
];
</span></span>ဒီ configuration ကို 0x3000 0x3000 နှင့် 0x303F မှ 0x303f မှ 0xt303F အကြားရှိဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ပြောင်းလဲခြင်း, တရုတ်,
mb_encode_numericality သည်အစွမ်းထက်သော်လည်း၎င်းကိုအသုံးပြုသည့်အခါအောက်ပါအချက်များကိုသတိပြုသင့်သည် -
ဝင်လာသောဇာတ်ကောင် encoding ( $ မှ $ မှ $ to_encoding ) မှန်ကန်ကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်, အရင်းအမြစ် string သည် UTF-8 encoding နှင့် Target Encoding သည် ISO-8859-1 ဖြစ်သည်ဆိုပါက concled code သို့မဟုတ်ပြောင်းလဲခြင်းအမှားများကိုရှောင်ရှားရန်သက်ဆိုင်ရာ encoding ကိုအတိအလင်းဖော်ပြရန်လိုအပ်သည်။
$ Concmap ကို သတ်မှတ်သည့်အခါ, ဇာတ်ကောင်များ၏ override ကို override ။ အကယ်. အကွာအဝေးသည်အလွန်ကျဉ်းမြောင်းသည်ဆိုပါကအချို့သောစာလုံးများကိုပြောင်းလဲခြင်းမပြုနိုင်ပါ။ အကယ်. အကွာအဝေးကိုအလွန်ကြီးမားသည်ဆိုပါကအခြားစာလုံးများပြောင်းလဲခြင်းကိုမလိုအပ်ဘဲအကျိုးသက်ရောက်နိုင်သည်။ ထို့ကြောင့်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီဇာတ်ကောင်အကွာအဝေးကိုသန့်စင်ရန်အကောင်းဆုံးဖြစ်သည်။
စာလုံးအကြီးအလုံးများစွာ၏ကြီးမားသောညှို့များသို့မဟုတ်ပြောင်းလဲခြင်းများအတွက် MB_enCode_NumeraleTity သည် စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ပြောင်းလဲခြင်းဖြစ်စဉ်ကိုသေးငယ်သောယူနစ်များခွဲရန်စဉ်းစားပါ,
ကွဲပြားခြားနားသော PHP ဗားရှင်းသို့မဟုတ်ပတ် 0 န်းကျင်များသည် MB_enCode_NumeraleTity ကို ကွဲပြားစွာထောက်ပံ့နိုင်သည်။ ၎င်းကိုအသုံးပြုသောအခါ PHP ပတ်ဝန်းကျင်တွင် Mbstring extension ကိုမှန်ကန်စွာတပ်ဆင်ထားပြီး extension ၏ဗားရှင်းသည်သင်လိုအပ်သည့်အင်္ဂါရပ်များကိုထောက်ပံ့ကြောင်းသေချာပါစေ။
အထူးအက္ခရာများပါ 0 င်သည့်စာသားများပြုလုပ်ရန် MB_enCode_Numericality ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်လက်တွေ့ကျသောလျှောက်လွှာကိစ္စဖြစ်သည်။
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"这是一个测试လူသူမ串,ပါဝင် <、> နှင့် & အထိမ်းအမှတ်。"</span></span><span>;
</span><span><span class="hljs-variable">$convmap</span></span><span> = [
[</span><span><span class="hljs-number">0x80</span></span><span>, </span><span><span class="hljs-number">0x10FFFF</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>] </span><span><span class="hljs-comment">// အားလုံး Non-ASCIIလူသူမပေြာင်း为数字实体</span></span><span>
];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_encode_numericentity</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$convmap</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$result</span></span><span>;
</span></span>output သည် ASCII အက္ခရာများအားလုံး၏ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်သို့ပြောင်းလဲခြင်းဖြစ်သည်။
<span><span>这是一个测试လူသူမ串,ပါဝင် </span><span><span class="hljs-selector-tag">&</span></span><span><span class="hljs-selector-id">#60</span></span><span>;、</span><span><span class="hljs-selector-tag">&</span></span><span><span class="hljs-selector-id">#62</span></span><span>; နှင့် </span><span><span class="hljs-selector-tag">&</span></span><span><span class="hljs-selector-id">#38</span></span><span>; အထိမ်းအမှတ်。
</span></span>ဤကိုင်တွယ်ပုံသည် XSS တိုက်ခိုက်မှုများ, HTML rendering အမှားများနှင့်အခြားပြ problems နာများကိုရှောင်ရှားရာတွင်အလွန်အထောက်အကူပြုသည်။