လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> iconv_substr နှင့်ကြိုးများကိုကြားဖြတ်ရန် parameters တွေကိုသတ်မှတ်ရန်စာလုံးများကိုမည်သို့သတ်မှတ်ရမည်နည်း။ တိကျသောစစ်ဆင်ရေးညွှန်ကြားချက်များ

iconv_substr နှင့်ကြိုးများကိုကြားဖြတ်ရန် parameters တွေကိုသတ်မှတ်ရန်စာလုံးများကိုမည်သို့သတ်မှတ်ရမည်နည်း။ တိကျသောစစ်ဆင်ရေးညွှန်ကြားချက်များ

M66 2025-07-18

PHP Development တွင် Multi-byte character (ဥပမာဂျပန်, ကိုးရီးယားစသည်တို့) ကြိုးများနှင့်ဆက်ဆံရာတွင်ချည်နှောင်ခြင်းများပြုလုပ်သောအခါ, သာမန် substr () function ကိုအသုံးပြုသောအခါ string ကိုကြားဖြတ်ရန်အတွက်, ၎င်းသည် byte စစ်ဆင်ရေးများအပေါ်အခြေခံထားသည့်အတွက်ကြောင့် concept ရလဒ်ကိုကြားဖြတ်ရန် code သို့မဟုတ် byte multi-byte အက္ခရာများကိုဖြစ်ပေါ်စေသည်။ ဤပြ problem နာကိုဖြေရှင်းရန် PHP သည် Iconv_substr () function ကိုထောက်ပံ့ပေးသည်။

ဒီဆောင်းပါးက iconv_substrcr () function ကိုဘယ်လိုသုံးရမလဲဆိုတာအသေးစိတ်အချက်အလက်တွေက strings တွေကိုကြားဖြတ်ဖို့သတ်မှတ်ထားတဲ့ဇာတ်ကောင်တွေကိုပုံဖော်ဖို့သတ်မှတ်ထားတဲ့ parameters တွေကိုသတ်မှတ်ပြီးအသေးစိတ်အချက်အလက်တွေကိုပုံဖော်ဖို့ပုံဖော်ပြသနိုင်မယ်ဆိုတာကိုအသေးစိတ်ဖော်ပြလိမ့်မယ်။


1 ။ iconv_substr () ဆိုတာဘာလဲ။

IconV_substred () သည် PHP တွင်ကြိုးများကိုကြားဖြတ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည် condbled code ပြ problems နာများကိုရှောင်ရှားရန်သတ်မှတ်ထားသောဇာတ်ကောင်အပေါ် အခြေခံ. Multi-byte ကြိုးများကိုမှန်ကန်စွာကြားဖြတ်နိုင်ပါသည်။

function ရှေ့ပြေးပုံစံသည်အောက်ပါအတိုင်းဖြစ်သည် -

 string iconv_substr ( string $str , int $offset [, int $length = NULL [, string $charset = ini_get("iconv.internal_encoding") ]] )
  • $ str : changing string ကို။

  • $ offset : ကြားဖြတ် (ဇာတ်ကောင်မဟုတ်သော bytes) ၏ start အနေအထား။

  • $ အရှည် : ကြားဖြတ်သည့်အရှည်, string ကို၏အဆုံးမှကြားဖြတ်ရန် default ။

  • $ Charset : UTF-8 , GBK စသည်ဖြင့် string ကို set encoding set encoding ကိုသတ်မှတ်သည်။


2 ။ အဘယ်ကြောင့်ဇာတ်ကောင် parameters တွေကိုသတ်မှတ်ထား?

strings ၏ဇာတ်ကောင် encoding ကွဲပြားခြားနားသောကြောင့်, byte အရှည်သည်လည်းကွဲပြားခြားနားသည်။ ဥပမာအားဖြင့်, တရုတ်ဇာတ်ကောင်သည် UTF-8 encoding နှင့် GBK encoding တွင် 3 bytes 3 ခုရှိသည်။ မှန်ကန်သောဇာတ်ကောင်အစုံမသတ်မှတ်ထားပါက iconv_substr () သည် string ၏ဇာတ်ကောင်နယ်နိမိတ်ကိုမှန်ကန်စွာခွဲခြား သတ်မှတ်. မရပါ။


3 ။ တိကျသောစစ်ဆင်ရေးညွှန်ကြားချက်များ

3.1 အခြေခံအသုံးပြုမှုဥပမာများ

utf-8 encoded တရုတ် string ကိုရှိပါတယ်ဆိုပါစို့:

 <?php
$str = "ဝမ်းသာစွာနှုတ်ဆက်ခြင်းPHPstring ကိုကြားဖြတ်လုပ်ဆောင်ပါ。";
$substr = iconv_substr($str, 3, 5, "UTF-8");
echo $substr;
?>

ရှင်းပြပါ:

  • String ၏ 4 ပုံတွင်စတင်ပါ ( အော့ဖ်သည် 3, 0-based) ကြောင့်ဖြစ်သည်။

  • စာလုံး 5 လုံးကြားဖြတ်။

  • UTF-8 မှ set ဇာတ်ကောင်ကိုဖေါ်ပြသည်။

ရလဒ်ရလဒ် -

 အသုံးပြုPHPဉီးစီး

3.2 URL ဥပမာနှင့်ပေါင်းစပ် (M66.net ဖြင့် Domain Name ကိုအစားထိုးပါ)

interface လိပ်စာကိုရယူခြင်းကဲ့သို့သော code တွင် URL တစ်ခုကိုအသုံးပြုရန်လိုအပ်ပါက Domain Name ကို M66.net နှင့်အစားထိုးလိမ့်မည်။

 <?php
// ကြားဖြတ်ခံရဖို့လိုအပ်ပါတယ်URLအတွက်လမ်းကြောင်းအပိုင်း
$url = "http://m66.net/api/v1/resource";
$path = parse_url($url, PHP_URL_PATH);
$substr = iconv_substr($path, 1, 5, "UTF-8");
echo $substr; // ထုတ်လုပ်ခြင်း /api/
?>

3.3 မှတ်စုဖို့အရာ

  • ကျေးဇူးပြု. ဆာဗာပတ် 0 န်းကျင်တွင် iconv extension ကိုဖွင့်ထားကြောင်းသေချာအောင်လုပ်ပါ။

  • $ offset နှင့် $ အရှည်သည် အက္ခရာများအတွက်မဟုတ်ဘဲအက္ခရာများတွင်ပါ 0 င်သည်။

  • ဇာတ်ကောင်သတ်မှတ်ထားသည့်အမည်မှာ string ၏အမှန်တကယ် encoding ကိုတိကျမှန်ကန်စွာကိုက်ညီရမည်


4 ။ အကျဉ်းချုပ်

iconv_substred () ကိုအသုံးပြုပြီးသည့်အခါမှန်ကန်သောဇာတ်ကောင်ကိုသတ်မှတ်ခြင်းကိုသတ်မှတ်သည့်အခါ parameters များကိုသတ်မှတ်ခြင်းသည် Multibyte Strings ၏တိကျသောကြားဖြတ်မှုကိုသေချာစေရန်အတွက်သော့ချက်ဖြစ်သည်။ parameters တွေကိုကျိုးကြောင်းဆီလျော်စွာသတ်မှတ်ခြင်းအားဖြင့်တရုတ်နှင့်ဂျပန်တို့ကဲ့သို့သောရှုပ်ထွေးသောစာလုံးများကိုမှန်ကန်သောကြားဖြတ်ချက်ကိုရရှိရန်လွယ်ကူပြီး,