လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> string အရှည်ကိုထိန်းချုပ်ရန် strlen နှင့်ပေါင်းစပ်ထားသော iconv_substr ကိုအသုံးပြုနည်း။ လက်တွေ့ကျတဲ့ကျွမ်းကျင်မှုများကိုမျှဝေပါ

string အရှည်ကိုထိန်းချုပ်ရန် strlen နှင့်ပေါင်းစပ်ထားသော iconv_substr ကိုအသုံးပြုနည်း။ လက်တွေ့ကျတဲ့ကျွမ်းကျင်မှုများကိုမျှဝေပါ

gitbox 2025-09-08

PHP ပရိုဂရမ်တွင် String အရှည်နှင့်စပ်လျဉ်း။ စိန်ခေါ်မှုများအချို့, အထူးသဖြင့်တရုတ်, ဂျပန်, ကိုးရီးယားစသည်တို့စသည်တို့အတွက်) strlen () နှင့် substric) functions များသည်ပုံမှန်အားဖြင့်တစ်ကိုယ်ရေအက္ခရာများအတွက်ဒီဇိုင်းပြုလုပ်ထားသောကြောင့်၎င်းတို့သည် byte အက္ခရာများတွင်ပြ problems နာများရှိနိုင်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည် ICOV_Substr () ဤပြ problem နာကိုဖြေရှင်းနိုင်သည့် ICONV_Substr () ကိုကောင်းစွာဖြေရှင်းနိုင်သည့်အင်အားကြီးသည့် ICONV စာကြည့်တိုက်စာကြည့်တိုက်ဖြစ်သည်။ Today, iconv_substr () နှင့် strlen () strlen () strlen () strlen () ကို မည်သို့အသုံးပြုရမည်ကိုလေ့လာမည်။

ဘာကြောင့် iconv_substr ကိုဘာရီသုံးတာလဲ။

အစဉ်အလာ substr () နှင့် strlen () functions () functions () functions (ဥပမာ - တရုတ်ကဲ့သို့သောဇာတ်ကောင်များ (တရုတ်) ဇာတ်ကောင်များနှင့်အတူကိုင်တွယ်ဖြေရှင်းပါကဇာတ်ကောင်အရေအတွက်ထက်ဇာတ်ကောင်များအရေအတွက်ကိုတွက်ချက်လိမ့်မည်။ ၎င်းသည်တွက်ချက်ထားသော string အရှည်ကိုမျှော်လင့်ထားသည့်အတိုင်းမဖြစ်နိုင်ပါ။ ဥပမာအားဖြင့်:

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 18</span></span><span>
</span></span>

ဤအချိန်တွင် strlen () ဇာတ်ကောင်အစား bytes အရေအတွက်ကိုပြန်ပို့သည်။ တရုတ်ဇာတ်ကောင်များသည် 3 bytes 3 ခုကိုယူကြပြီးဤ string တွင်စာလုံး 6 လုံးရှိသော်လည်း strlen () သည် 18 bytes () မတော်တဆပြန်ရောက်သည်။

IconV_substr () ကိုအထူးပြုလုပ်ရန်အထူးအသုံးပြုသည်။ ၎င်းသည် Bytes မဟုတ်ဘဲအက်ခရာအရေအတွက်ကိုမှန်ကန်စွာတွက်ချက်နိုင်ပါသည်, ထို့ကြောင့် string ၏အရှည်ကိုတိကျစွာထိန်းချုပ်နိုင်သည်။

iconv_substr နှင့် strlen ကိုပေါင်းစပ်အသုံးပြုနည်း

1 ။ string တစ်ခုအတွက်ဇာတ်ကောင်အရေအတွက်ကိုတွက်ချက်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည် iconv_strinlen () ကို တွက်ချက်ရန်လိုအပ်ပြီး bytes အရေအတွက်မဟုတ်ဘဲ string ၏ဇာတ်ကောင်အရေအတွက်ကိုတွက်ချက်ရန်လိုအပ်သည်။ iconv_strinlen () သည် strings string တွင်အမှန်တကယ်အက္ခရာများကိုပြန်ပို့သည်ဖြစ်စေ,

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ!"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">iconv_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း 6</span></span><span>
</span></span>

2 ။ ကြားဖြတ်ယူခြင်းအတွက် IconV_substr ကိုသုံးပါ

နောက်တစ်ခုက string ကိုကြားဖြတ်ဖို့ Iconv_substr () ကို သုံးနိုင်တယ်။ ၎င်း၏ parameters များသည် substrict () နှင့်ဆင်တူသော်လည်း Multibyte ဇာတ်ကောင်အစုံများ၏မှန်ကန်သောကြားဖြတ်မှုကိုထောက်ခံသည်။ iCONONV_STRLEN () နှင့် iconv_substred () ကို ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြားဖြတ် string ၏ဇာတ်ကောင်အရှည်ကိုအတိအကျထိန်းချုပ်နိုင်သည်။

 <span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ!"</span></span><span>;
</span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-number">3</span></span><span>;
</span><span><span class="hljs-variable">$substring</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$length</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">$substring</span></span><span>; </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "မင်္ဂလာပါ,"</span></span><span>
</span></span>

ဤဥပမာတွင် iconv_substr () တွင် string နှင့် complecepts 3 လုံး၏ပထမဆုံးဇာတ်ကောင်မှကြားဖြတ်။ ဤနေရာတွင် အရှည်သည် substrat () တွင်တိကျသော byte အရေအတွက်ကိုရှောင်ရှားသော byte နံပါတ်ထက်ဇာတ်ကောင်နံပါတ်ဖြစ်သည်။

3 ။ dynamically string ကိုအရှည်

တခါတရံတွင်ကျွန်ုပ်တို့သည် string ကိုအရှည်မတူကွဲပြားသောအခြေအနေများနှင့်အညီပြသထားသည့်ကွဲပြားသောအခြေအနေများနှင့်အညီပုံမှန်အားဖြင့်ထိန်းချုပ်ရန်လိုအပ်သည်။ ICONV_SubstrChstr () နှင့် iCONV_STRSTRLEN () ပေါင်းစပ်ခြင်းအားဖြင့်၎င်းကိုကျွန်ုပ်တို့အလွယ်တကူအောင်မြင်နိုင်သည်။

 <span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">truncate_string</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$string</span></span></span><span>, </span><span><span class="hljs-variable">$max_length</span></span><span>) {
    </span><span><span class="hljs-variable">$length</span></span><span> = </span><span><span class="hljs-title function_ invoke__">iconv_strlen</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$length</span></span><span> &gt; </span><span><span class="hljs-variable">$max_length</span></span><span>) {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">iconv_substr</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-variable">$max_length</span></span><span>, </span><span><span class="hljs-string">'UTF-8'</span></span><span>) . </span><span><span class="hljs-string">'...'</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$string</span></span><span>;
    }
}

</span><span><span class="hljs-variable">$string</span></span><span> = </span><span><span class="hljs-string">"မင်္ဂလာပါ,ကမ်ာဘ!ဒီစမ်းသပ်မှု string ကိုဖြစ်ပါတယ်。"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">truncate_string</span></span><span>(</span><span><span class="hljs-variable">$string</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း "မင်္ဂလာပါ,ကမ်ာဘ!..."</span></span><span>
</span></span>

ဤဥပမာတွင် truncate_string () function () function သည်အများဆုံးပေးထားသောအရှည်အပေါ် အခြေခံ. string ကိုကြားဖြတ်ပြီးအဆုံးတွင် ellipsis ကိုထပ်ထည့်သည်။

အကျဉ်းချုပ်

IcONV_Substr () နှင့် iCONV_Strsten () ကို အသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် Multibyte ဇာတ်ကောင်အစုံတွင်ကြိုးမဲ့ထိန်းချုပ်မှုပြ problem နာကိုထိထိရောက်ရောက်ဖြေရှင်းနိုင်သည်။ လုပ်ဆောင်ချက်များ သည် ကျွန်ုပ်တို့အား Demles ထက်စာနယ်ဇင်းများမှတိကျသောစကားလုံးများဖြင့်တိကျစွာဖြတ်သန်းရန်, အကယ်. သင်၏စီမံကိန်းသည်ဘာသာစကားမျိုးစုံဘာသာစကားများဖြင့်အထူးသဖြင့်တရုတ်, ဂျပန်, ကိုးရီးယားနှင့်အခြားဇာတ်ကောင်များအပါအ 0 င်ဤလုပ်ဆောင်ချက်နှစ်ခုသည်အလွန်လက်တွေ့ကျသည့်ကိရိယာများဖြစ်သည်။