လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> MB_enCode_Numericalityity function တွင် $ conmap parameter ကိုမှန်ကန်စွာ configure လုပ်နည်း။ အကြံပြုချက်များနှင့်ကြိုတင်ကာကွယ်မှုများချမှတ်ခြင်း၏အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာခြင်း

MB_enCode_Numericalityity function တွင် $ conmap parameter ကိုမှန်ကန်စွာ configure လုပ်နည်း။ အကြံပြုချက်များနှင့်ကြိုတင်ကာကွယ်မှုများချမှတ်ခြင်း၏အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာခြင်း

gitbox 2025-08-21

1 ။ mb_encode_numericalityity function ကိုခြုံငုံသုံးသပ်ချက်

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 ကိုပြောင်းလဲခြင်းအကျိုးသက်ရောက်မှုအတွက်အရေးပါသည်။


2 ။ $ conmap parameters တွေကို၏အသေးစိတ်ခွဲခြမ်းစိတ်ဖြာ

$ 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>

2.1 Subarray ဖော်ပြချက်

  • ဇာတ်ကောင် Code မှ - ဤသည်မှာကိန်းဂဏန်းအဖွဲ့အစည်းတစ်ခု၏ပြောင်းလဲခြင်းအတွက်အစဇာတ်လမ်းကုဒ်ဖြစ်သည်။

  • Comple Code သို့ - ဤသည်ပြောင်းလဲခြင်း၏အကွာအဝေးကိုသတ်မှတ်ခြင်းသည်ဒစ်ဂျစ်တယ် Endity ပြောင်းလဲခြင်းအတွက်အဆုံးသတ်ဇာတ်ကောင်ကုဒ်ဖြစ်သည်။

  • ဇာတ်ကောင်အစုံမှ : input string အတွက် encoding အမျိုးအစားကိုသတ်မှတ်ပါ။

  • ဇာတ်ကောင် set ကိုမှ - များသောအားဖြင့် UTF-8, ပြောင်းလဲထားသောဇာတ်ကောင်အမျိုးအစားကိုသတ်မှတ်ပါ။

ဥပမာအားဖြင့်, ဒေါ်လာစည်းမျဉ်းစည်းကမ်းများကို ပြင်ဆင်သည့်အခါအက္ခရာများကိုဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ကူးပြောင်းမည့်ဇာတ်ကောင်များကိုသတ်မှတ်နိုင်သည်။


3 ။ $ conmpap parameters တွေကို configuring အတွက်သိကောင်းစရာများ

$ Conmap Parameter ကိုမှန်ကန်စွာပြင်ဆင်ခြင်းသည်ပြောင်းလဲခြင်းစည်းမျဉ်းများကိုတိကျစွာထိန်းချုပ်ရန်ကူညီနိုင်သည်။ ဤတွင်အချို့သော configuration ကိုသိကောင်းစရာများရှိပါသည်။

3.1 သတ်သတ်မှတ်မှတ်ဇာတ်ကောင်များအတွက်ပြောင်းပါ

အချို့သောသတ်သတ်မှတ်မှတ်ဇာတ်ကောင်များကိုဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ပြောင်းလဲလိုပါကဇာတ်ကောင်ကုဒ်အကွာအဝေးကိုသတ်မှတ်ခြင်းဖြင့်သင်ဤသို့ပြုလုပ်နိုင်သည်။ သင် 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 ဇာတ်ကောင်များ) နှင့်ညီမျှသောစာလုံးအားလုံးသည်ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်သို့ပြောင်းလဲသွားလိမ့်မည်။

3.2 HTML ဇာတ်ကောင်အဖွဲ့အစည်းများအတွက်ပြောင်းလဲခြင်း

အကယ်. သင်သည် 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>

ဤဖွဲ့စည်းပုံအခြေခံဥပဒေပြုလုပ်ပြီးနောက်အခြေအနေများကိုဖြည့်ဆည်းပေးသောဇာတ်ကောင်အားလုံးသည်ဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများအဖြစ်သို့ပြောင်းလဲလိမ့်မည်။

3.3 Unicode ဇာတ်ကောင်အကွာအဝေးကိုအသုံးပြုခြင်း

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 အကြားရှိဒစ်ဂျစ်တယ်အဖွဲ့အစည်းများသို့ပြောင်းလဲခြင်း, တရုတ်,


4 ။ mb_encode_numericalityity function ကိုအသုံးပြုခြင်းအပေါ်မှတ်စုများ

mb_encode_numericality သည်အစွမ်းထက်သော်လည်း၎င်းကိုအသုံးပြုသည့်အခါအောက်ပါအချက်များကိုသတိပြုသင့်သည် -

4.1 ဇာတ်ကောင် encoding ၏ရွေးချယ်ရေး

ဝင်လာသောဇာတ်ကောင် encoding ( $ မှ $ မှ $ to_encoding ) မှန်ကန်ကြောင်းသေချာပါစေ။ ဥပမာအားဖြင့်, အရင်းအမြစ် string သည် UTF-8 encoding နှင့် Target Encoding သည် ISO-8859-1 ဖြစ်သည်ဆိုပါက concled code သို့မဟုတ်ပြောင်းလဲခြင်းအမှားများကိုရှောင်ရှားရန်သက်ဆိုင်ရာ encoding ကိုအတိအလင်းဖော်ပြရန်လိုအပ်သည်။

4.2 ပြောင်းလဲခြင်းအကွာအဝေးလွှမ်းခြုံ

$ Concmap ကို သတ်မှတ်သည့်အခါ, ဇာတ်ကောင်များ၏ override ကို override ။ အကယ်. အကွာအဝေးသည်အလွန်ကျဉ်းမြောင်းသည်ဆိုပါကအချို့သောစာလုံးများကိုပြောင်းလဲခြင်းမပြုနိုင်ပါ။ အကယ်. အကွာအဝေးကိုအလွန်ကြီးမားသည်ဆိုပါကအခြားစာလုံးများပြောင်းလဲခြင်းကိုမလိုအပ်ဘဲအကျိုးသက်ရောက်နိုင်သည်။ ထို့ကြောင့်အမှန်တကယ်လိုအပ်ချက်များနှင့်အညီဇာတ်ကောင်အကွာအဝေးကိုသန့်စင်ရန်အကောင်းဆုံးဖြစ်သည်။

4.3 စွမ်းဆောင်ရည်ပြ issues နာများ

စာလုံးအကြီးအလုံးများစွာ၏ကြီးမားသောညှို့များသို့မဟုတ်ပြောင်းလဲခြင်းများအတွက် MB_enCode_NumeraleTity သည် စွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။ ပြောင်းလဲခြင်းဖြစ်စဉ်ကိုသေးငယ်သောယူနစ်များခွဲရန်စဉ်းစားပါ,

4.4 သဟဇာတကိစ္စများ

ကွဲပြားခြားနားသော PHP ဗားရှင်းသို့မဟုတ်ပတ် 0 န်းကျင်များသည် MB_enCode_NumeraleTity ကို ကွဲပြားစွာထောက်ပံ့နိုင်သည်။ ၎င်းကိုအသုံးပြုသောအခါ PHP ပတ်ဝန်းကျင်တွင် Mbstring extension ကိုမှန်ကန်စွာတပ်ဆင်ထားပြီး extension ၏ဗားရှင်းသည်သင်လိုအပ်သည့်အင်္ဂါရပ်များကိုထောက်ပံ့ကြောင်းသေချာပါစေ။


5 ။ လက်တွေ့ကျသောလျှောက်လွှာကိစ္စများ

အထူးအက္ခရာများပါ 0 င်သည့်စာသားများပြုလုပ်ရန် MB_enCode_Numericality ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်လက်တွေ့ကျသောလျှောက်လွှာကိစ္စဖြစ်သည်။

 <span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"这是一个测试လူသူမ串,ပါဝင် &lt;、&gt; နှင့် &amp; အထိမ်းအမှတ်。"</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">&amp;</span></span><span><span class="hljs-selector-id">#60</span></span><span>;、</span><span><span class="hljs-selector-tag">&amp;</span></span><span><span class="hljs-selector-id">#62</span></span><span>; နှင့် </span><span><span class="hljs-selector-tag">&amp;</span></span><span><span class="hljs-selector-id">#38</span></span><span>; အထိမ်းအမှတ်。
</span></span>

ဤကိုင်တွယ်ပုံသည် XSS တိုက်ခိုက်မှုများ, HTML rendering အမှားများနှင့်အခြားပြ problems နာများကိုရှောင်ရှားရာတွင်အလွန်အထောက်အကူပြုသည်။