လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> အထူးအက္ခရာများဖြင့် string ကိုထုတ်လုပ်ရန် Chr. ) function ကိုမည်သို့အသုံးပြုရမည်နည်း။

အထူးအက္ခရာများဖြင့် string ကိုထုတ်လုပ်ရန် Chr. ) function ကိုမည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-09-23

PHP တွင် Chr () တွင် Chr () သည်အလွန်အခြေခံဖြစ်သော်လည်းအသုံးအများဆုံး function ကို - ၎င်းသည်ကိန်း (0-255) နှင့်သက်ဆိုင်ရာ single-byte ဇာတ်ကောင်ကိုပြန်ပို့သည်။ ဥပမာအားဖြင့်, Chr (65) ပြန်လာ "a" ကိုပြန်ပို့သည်။ သို့သော် "အထူးအက္ခရာများ" - ထိန်းချုပ်မှုဇာတ်ကောင်များ, binary byte sequences သို့မဟုတ် multi-byte (utf-8) ဇာတ်ကောင်များ (တရုတ်, Emotsons) ဇာတ်ကောင်များ (တရုတ်, Emotsons) ဇာတ်ကောင်များအဖြစ်ကိုင်တွယ်ဖြေရှင်းသည့်အခါ Chr (Multies) ၏အကန့်အသတ်များနှင့်အခြားနည်းများကိုနားလည်ရန်လိုအပ်သည်။

အောက်ပါတို့သည်ဘုံဓလေ့ထုံးစံများနှင့်ကြိုတင်ကာကွယ်မှုများပြုလုပ်နိုင်ရန်နှင့်တိုက်ရိုက်ကူးယူနိုင်ကြောင်းဥပမာများပေးသည်။


1) Ascii / Control character (single byte) ကိုထုတ်လုပ်ပါ။

Single-byte အက္ခရာများကိုထုတ်လုပ်ခြင်းတွင် မည်သည့် Chr () သည်အကောင်းဆုံးဖြစ်သည်။ ၎င်းသည်အသစ်များ, tabs များ, မမြင်ရသောထိန်းချုပ်မှုအက္ခရာများသို့မဟုတ်မည်သည့် byte တန်ဖိုးများကိုမဆိုထုတ်လုပ်ရန်အသုံးပြုနိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// အရင်းအနှီးငေှ A</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">65</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း A</span></span><span>

</span><span><span class="hljs-comment">// လိုင်းချိုး(LF)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"line1"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>) . </span><span><span class="hljs-string">"line2"</span></span><span>;

</span><span><span class="hljs-comment">// tab သင်္ကေတများ(TAB)</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"col1"</span></span><span> . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">9</span></span><span>) . </span><span><span class="hljs-string">"col2"</span></span><span>;

</span><span><span class="hljs-comment">// Binary Data အပိုင်းအစများကိုထုတ်လုပ်ပါ</span></span><span>
</span><span><span class="hljs-variable">$bytes</span></span><span> = </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x00</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0xFF</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x7A</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">var_dump</span></span><span>(</span><span><span class="hljs-variable">$bytes</span></span><span>); </span><span><span class="hljs-comment">// string(3) "\x00\xFFz"</span></span><span>
</span></span>

ထိပ်ဖ်ား : binary protocols များကိုသင်ကိုင်တွယ်သောအခါ File Headers သို့မဟုတ် Network Packages များ, Chr () သည်မည်သည့် bytes ကိုမဆိုတည်ဆောက်ရန်အလွန်အဆင်ပြေသည်။


2) တစ်ပြိုင်နက်တည်း bytes မျိုးစုံကိုထုတ်လုပ်ပါ။ Pack () သို့မဟုတ် Splicing Chr ကိုသုံးပါ။

အကယ်. သင်သည်တစ်ပြိုင်နက်တည်း bytes များကိုတစ်ပြိုင်နက်တည်းဆောက်လုပ်လိုပါက Pack () သည် ch ch chro () အမြောက်အမြားထက်ပိုမိုရိုးရှင်းပြီးစွမ်းဆောင်ရည်ပိုမိုကောင်းမွန်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// အသုံးပြု pack သုံး bytes ထုတ်ပေး:0x01 0x02 0x03</span></span><span>
</span><span><span class="hljs-variable">$bin</span></span><span> = </span><span><span class="hljs-title function_ invoke__">pack</span></span><span>(</span><span><span class="hljs-string">'C*'</span></span><span>, </span><span><span class="hljs-number">0x01</span></span><span>, </span><span><span class="hljs-number">0x02</span></span><span>, </span><span><span class="hljs-number">0x03</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-variable">$bin</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "010203"</span></span><span>

</span><span><span class="hljs-comment">// splicing chr လမ်း(ညီမျှခြင်း)</span></span><span>
</span><span><span class="hljs-variable">$bin2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">1</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">2</span></span><span>) . </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">3</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">bin2hex</span></span><span>(</span><span><span class="hljs-variable">$bin2</span></span><span>); </span><span><span class="hljs-comment">// "010203"</span></span><span>
</span></span>

3) UTF-8 Multi-byte အက္ခရာများ (တရုတ်, Emoticons စသဖြင့်) ထုတ်လုပ်ခြင်း

Chr () သည် တစ်ခုတည်းသော bytes များကိုပြန်ပို့သည်။ UTF-8 Multibyte ဇာတ်ကောင်များ (Code Point> 0xFF) ကို Chrice () မှတိုက်ရိုက်ထုတ်ပေး။ မရပါ။ ဘုံရွေးချယ်စရာများတွင် -

Method A - MB_ConVert_encoding () / html_entity_decode () () (HTML entity အပေါ်အခြေခံသည်) ကိုသုံးပါ။

လူသိများသောယူနီကုတ်ကုဒ်အမှတ်အသားများအတွက် (U + 1F600 Emoticons ကဲ့သို့) သင်သူတို့ကို UTF-8 သို့ပြောင်းလဲနိုင်သည် HTML အဖွဲ့အစည်းများမှတဆင့်ပြောင်းလဲနိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 使အသုံးပြု HTML Entity မျိုးဆက်အမြင် Emoticons(ဥပမာအားဖြင့် ?? U+1F600)</span></span><span>
</span><span><span class="hljs-variable">$emoji</span></span><span> = </span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-string">'&amp;#x1F600;'</span></span><span>, ENT_NOQUOTES, </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">$emoji</span></span><span> . PHP_EOL;
</span></span>

Method B - IntLCHAR :: Chr () ကို သုံးပါ။

ဆာဗာတွင် ext-intl enable လုပ်ထားပါကစာလုံးများကိုထုတ်လုပ်ရန် Unicode ကုဒ်နံပါတ်ကိုတိုက်ရိုက်နှိပ်နိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// လိုအပ်ချက် ext-intl</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title class_">IntlChar</span></span><span>::</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x4E2D</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "အလယ်ပိုင်း"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title class_">IntlChar</span></span><span>::</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x1F600</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း ??(ညှစ်ခြင်း)</span></span><span>
</span></span>

Method C - Binary bytes (hex) - hex2bin (hex2bin) ကိုသုံးပါ

UTF-8 Hexadecimal Byte ကိုလူသိများသောဇာတ်ကောင်များအပေါ်တွင် byte string ကိုတိုက်ရိုက်တည်ဆောက်နိုင်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// "အလယ်ပိုင်း" ၏ UTF-8 encoding သည် E4 B8 AD</span></span><span>
</span><span><span class="hljs-variable">$zh</span></span><span> = </span><span><span class="hljs-title function_ invoke__">hex2bin</span></span><span>(</span><span><span class="hljs-string">'e4b8ad'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$zh</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း အလယ်ပိုင်း</span></span><span>

</span><span><span class="hljs-comment">// ညှစ်ခြင်း ?? ၏ UTF-8 encoding သည် F0 9F 98 80</span></span><span>
</span><span><span class="hljs-variable">$emoji</span></span><span> = </span><span><span class="hljs-title function_ invoke__">hex2bin</span></span><span>(</span><span><span class="hljs-string">'f09f9880'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$emoji</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း ??</span></span><span>
</span></span>

မှတ်ချက် - ဤနေရာတွင် Hex2Bin () UTF-8 ၏ Byte တန်ဖိုးကိုတိုက်ရိုက်ရေးသားခြင်းသည်သင်သိတဲ့အမှုများအတွက်သင်သိသောအမှုပေါင်း (ဥပမာ packet capture မှ) သင်သိသောအမှုပေါင်းများအတွက်သင့်လျော်သည်။


4. Unicode Community Points ကို UTF-8 သို့ကိုင်တွယ်ရန်အထွေထွေနည်းလမ်း

သင့်တွင် Integer Point ရှိပါက UTF-8 အက္ခရာများသို့ပြောင်းရန်အထွေထွေလုပ်ဆောင်ချက်တစ်ခုလိုအပ်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">codepoint_to_utf8</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">int</span></span></span><span> </span><span><span class="hljs-variable">$cp</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$cp</span></span><span> &lt;= </span><span><span class="hljs-number">0x7F</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-variable">$cp</span></span><span>);
    } </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$cp</span></span><span> &lt;= </span><span><span class="hljs-number">0x7FF</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0xC0</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">6</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &amp; </span><span><span class="hljs-number">0x3F</span></span><span>));
    } </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$cp</span></span><span> &lt;= </span><span><span class="hljs-number">0xFFFF</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0xE0</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">12</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | ((</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">6</span></span><span>) &amp; </span><span><span class="hljs-number">0x3F</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &amp; </span><span><span class="hljs-number">0x3F</span></span><span>));
    } </span><span><span class="hljs-keyword">elseif</span></span><span> (</span><span><span class="hljs-variable">$cp</span></span><span> &lt;= </span><span><span class="hljs-number">0x10FFFF</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0xF0</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">18</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | ((</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">12</span></span><span>) &amp; </span><span><span class="hljs-number">0x3F</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | ((</span><span><span class="hljs-variable">$cp</span></span><span> &gt;&gt; </span><span><span class="hljs-number">6</span></span><span>) &amp; </span><span><span class="hljs-number">0x3F</span></span><span>)) .
               </span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x80</span></span><span> | (</span><span><span class="hljs-variable">$cp</span></span><span> &amp; </span><span><span class="hljs-number">0x3F</span></span><span>));
    }
    </span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">'Invalid Unicode code point'</span></span><span>);
}

</span><span><span class="hljs-comment">// 使အသုံးပြု</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">codepoint_to_utf8</span></span><span>(</span><span><span class="hljs-number">0x4E2D</span></span><span>);   </span><span><span class="hljs-comment">// အလယ်ပိုင်း</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">codepoint_to_utf8</span></span><span>(</span><span><span class="hljs-number">0x1F600</span></span><span>); </span><span><span class="hljs-comment">// ??</span></span><span>
</span></span>

UTF-8 byte တစ်ခုချင်းစီကိုတည်ဆောက်ရန်အတွက်ဤလုပ်ဆောင်ချက်သည် Chr () ကို အသုံးပြုနေဆဲဖြစ်သည်။ ၎င်းသည်စင်ကြယ်သော PHP အတွက်အထွေထွေဖြေရှင်းနည်းဖြစ်သည်။


5) ဘုံအန္တရာယ်များနှင့်အကြံပြုချက်များ

  • Chr ()) ၏ parametere range () : တစ်ခုတည်း byte (0-255) နှင့်သာသက်ဆိုင်သည်။ 255 ထက်သာသောတန်ဖိုးများကိုဖြတ်သန်းခြင်းသည်သင်လိုချင်သောအပြုအမူမဟုတ်သည့်အရာ (အောက်ပိုင်း 8-bits) ကိုယူခြင်း (နိမ့်သော 8 bits) ကိုရိုက်ကူးနိုင်သည်။

  • encoding envirement encoding environment : Multibyte ဇာတ်ကောင်များအပေါ်ရေးဆွဲသည့်အခါ UTF-8 နှင့်ထိုဆက်နွယ်သောလုပ်ဆောင်ချက်များ ( json_encode ကဲ့သို့ strlen ) သည် MB_ * စီးရီးကိုအသုံးပြုရန်သတိထားပါ။

  • Display နှင့် Transfer : အချို့သောပတ်ဝန်းကျင် (ဆိပ်ကမ်းများ, HTTP ခေါင်းစီးများ, ဒေတာဘေ့စ်ကော်လံများ) သည် encoding ကိုအထိခိုက်မခံပါ။ UTF-8 စာလုံးများကိုတည်ဆောက်ခြင်းပြီးနောက်မှန်ကန်သော encoding ကိုကြေငြာပြီးနောက် (ဥပမာ - Meta Charset = "UTF-8" ) သို့ (adda charset = "utf-8") သို့ add add add add add add add type-type: text / html ;

  • ဦး စားပေး Tools : သင် Unicode ကုဒ်အချက်များနှင့်သင်သာကိုင်တွယ်ရန်လိုအပ်ပါက intlchar :: Chr () (ရှိလျှင်) သို့မဟုတ် MB_ * / MB_ * / ပြောင်းလဲခြင်းလုပ်ဆောင်ချက်များကိုသူတို့ semantics များကဲ့သို့အသုံးပြုသည်။


6. Quick Reference Table (Check)

 <span><span><span class="hljs-comment">// တစ်ခုတည်း byte ဇာတ်ကောင်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">65</span></span><span>); </span><span><span class="hljs-comment">// "A"</span></span><span>
</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// LF လိုင်းချိုး</span></span><span>

</span><span><span class="hljs-comment">// Multi-byte / Unicode ရေှးယူနိုင်ခြင်း</span></span><span>
</span><span><span class="hljs-title function_ invoke__">html_entity_decode</span></span><span>(</span><span><span class="hljs-string">'&amp;#x1F600;'</span></span><span>, ENT_NOQUOTES, </span><span><span class="hljs-string">'UTF-8'</span></span><span>); </span><span><span class="hljs-comment">// ??</span></span><span>
</span><span><span class="hljs-title class_">IntlChar</span></span><span>::</span><span><span class="hljs-title function_ invoke__">chr</span></span><span>(</span><span><span class="hljs-number">0x4E2D</span></span><span>); </span><span><span class="hljs-comment">// "အလယ်ပိုင်း"(လိုအပ်ချက် ext-intl)</span></span><span>
</span><span><span class="hljs-title function_ invoke__">hex2bin</span></span><span>(</span><span><span class="hljs-string">'e4b8ad'</span></span><span>); </span><span><span class="hljs-comment">// "အလယ်ပိုင်း"(直接အသုံးပြု UTF-8 hexadecimals bytes)</span></span><span>

</span><span><span class="hljs-comment">// CONCOM အချက်များပြောင်းပါ UTF-8(见上面၏ codepoint_to_utf8)</span></span><span>
</span></span>

အကျဉ်းချုပ်

Chr () သည် byte (0-255) အက္ခရာများနှင့် binary data များကိုထုတ်လုပ်သည့်အခါအလွန်ရိုးရှင်းပြီးတိုက်ရိုက်ဖြစ်သည်။ Byti-byte Unicode ဇာတ်ကောင်များ (တရုတ်, Emoji) နှင့်ရင်ဆိုင်ရသောအခါ intlchar :: Chr () , HTML entity ပြောင်းလဲခြင်း, HTML entity () သို့မဟုတ်စိတ်ကြိုက်ကုဒ်အမှတ် - Utf-Utf-8 ပြောင်းလဲခြင်းလုပ်ဆောင်ချက်များဖြင့်ယုံကြည်စိတ်ချရသောရလဒ်များကိုရရှိရန်လိုအပ်သည်။ သင်၏တိကျသောမြင်ကွင်း (ကွန်ယက် protocol) အရသင့်လျော်သောနည်းလမ်းကိုရွေးချယ်ခြင်း (ကွန်ယက် protocol protocol, project protcole, ဝက်ဘ်စာမျက်နှာ output) ကိုအာရုံစိုက်ခြင်းနှင့် encoding ရှေ့နောက်ညီညွတ်မှုကိုဂရုပြုခြင်း, အထူး "အထူးအက္ခရာများ" ကြိုးအမျိုးမျိုးကိုပြုလုပ်နိုင်သည်။