လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Debging MB_Get_info ပြန်လာတန်ဖိုးနှင့်ဖြေရှင်းနည်းများ

Debging MB_Get_info ပြန်လာတန်ဖိုးနှင့်ဖြေရှင်းနည်းများ

gitbox 2025-05-11

Multibyte ကြိုးများနှင့်ဆက်ဆံရာတွင် Mbstring extension သည် PHP အတွက်ခိုင်မာသောအထောက်အပံ့ဖြစ်သည်။ ၎င်းတို့အနက် MB_Get_info () MBString ၏အတွင်းပိုင်းချိန်ညှိမှုအခြေအနေရရှိရန်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ သို့သော် developer များစွာသည်စိတ်ရှုပ်ထွေးမှုများအချို့ကိုတွေ့ကြုံရလိမ့်မည်

1 ။ mb_get_info () ကဘာလဲ။

MB_GET_INFO () သည် PHP Mbstring String Reading enviring enviring enviring envoting ကိုရရှိရန် PHP Mbstring extension တွင် function တစ်ခုဖြစ်သည်။ ၎င်းတွင်သုံးနိုင်သည်။

 // အားလုံး setting ကိုသတင်းအချက်အလက်ရယူပါ
$info = mb_get_info();

// သတ်မှတ်ထားသောပစ္စည်းကိုရယူပါ
$encoding = mb_get_info("internal_encoding");

// လက်ရှိ encoding settings ကိုရယူပါ
$current_encoding = mb_get_info("encoding");

ပြန်လာသောအချက်အလက်များသည်များသောအားဖြင့်ပေါင်းသင်းရေးဆိုင်ရာခင်းကျင်းမှုတစ်ခုဖြစ်ပြီးအကြောင်းအရာသည်အောက်ပါအတိုင်းဖြစ်နိုင်သည် -

 Array
(
    [internal_encoding] => UTF-8
    [http_input] => pass
    [http_output] => pass
    [input_encoding] => UTF-8
    [output_encoding] => UTF-8
    [language] => neutral
    [encoding_translation] => Off
)

2 ။ mb_get_info ကို debuggugation ဖို့မှန်ကန်သောနည်းလမ်း ()

1 ။ mbstring extension ကို enabled ရှိမရှိအတည်ပြုပါ

PHP ကို ​​Mbstring နှင့်အတူတင်ထားလျှင်စစ်ဆေးရန်အောက်ပါ command ကို run ပါ။

 if (function_exists('mb_get_info')) {
    echo "mbstring enabled";
} else {
    echo "mbstring မဖွင့်ပါ";
}

အကယ်. ပြန်လာသည့် mbstring ကိုမဖွင့်ပါက PHPP.ini တွင် extension ကို enable လုပ်ရန်လိုအပ်သည်။

 extension=mbstring

ထို့နောက် PHP 0 န်ဆောင်မှုကိုပြန်လည်စတင်ပါ။

2 ။ encoding settings မတိုင်မီနှင့်ပြီးနောက်ကွဲပြားခြားနားမှုစစ်ဆေးပါ

တစ်ခါတစ်ရံတွင် encoding မတိုင်မီနှင့်ပြီးနောက်ပြောင်းလဲမှုများကိုစစ်ဆေးရန်လိုအပ်နိုင်သည်။

 echo "ကန ဦး သတင်းအချက်အလက်:\n";
print_r(mb_get_info());

mb_internal_encoding("ISO-8859-1");
mb_http_output("UTF-8");

echo "ပြုပြင်ထားသောသတင်းအချက်အလက်:\n";
print_r(mb_get_info());

ဤနှိုင်းယှဉ်ခြင်းဖြစ်စဉ်သည်သင်၏ချိန်ညှိချက်များသည်အမှန်တကယ်အမှန်တကယ်အကျိုးသက်ရောက်မှုရှိမရှိအနေအထားကိုအထောက်အကူပြုသည်။

3 ။ Logging ကိုပြန်သုံးပါ။

လက်တွေ့ကျသောအပလီကေးရှင်းများ၌ကျွန်ုပ်တို့သည်နောက်ဆက်တွဲခွဲခြမ်းစိတ်ဖြာမှုအတွက် log ရှိပြန်လာတန်ဖိုးကိုမှတ်တမ်းတင်နိုင်သည်။

 file_put_contents("/var/log/mbstring_debug.log", print_r(mb_get_info(), true));

3 ။ မကြာခဏမေးခွန်းများနှင့်ဖြေရှင်းနည်းများမကြာခဏမေးတယ်

မေးခွန်း 1: MB_Get_info () အချည်းနှီးသောခင်းကျင်းသို့မဟုတ်မှားယွင်းသောအရာ

ဖြစ်နိုင်ချေရှိသောအကြောင်းပြချက်များ:

  • Mbstring extension ကိုမဖွင့်ပါ

  • PHP ပြုစုသည့်အခါ - mbstring parameter ကိုမထည့်ပါ

ဖြေရှင်းချက် -

  • Mbstring Module ပါ 0 င်သည်ကို PHPP.ini (သို့ ) Phpinfo () ကိုနှိပ်ပါ

  • အောက်ပါ command ကို အသုံးပြု. PHP ကိုပြန်လည်ရယူပါ (source code installation အတွက်):

 ./configure --enable-mbstring
make && make install

မေးခွန်း 2 - Return Value အတွက် encoding_translation သည်အမြဲတမ်းအမြဲတမ်းပိတ်ထားသည်

Encoding_translation သည် input / output encoding ပြောင်းလဲခြင်းကိုဖွင့်ထားသည်ရှိမရှိဖော်ပြသည်။ ပုံမှန်ကအခြေအနေကိုပိတ်ထားပြီးသင် MB_OUTPOPTER_HANDLER () ကို သုံးပါက၎င်းကိုအလိုအလျောက်ဖွင့်နိုင်သည်။

အဖွင့်နည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -

 output_handler = mb_output_handler

သို့မဟုတ် code ကို enable:

 ob_start("mb_output_handler");

မေးခွန်း 3: Encoding setting ပြီးနောက်မမှန်ကန်သော

MB_GEget_info () မှပြန်လာသောတန်ဖိုးသည် encoding ကိုသတ်မှတ်ပြီးသည့်နောက်တွင်မပြောင်းလဲနိုင်ကြောင်းသင်တွေ့ရှိပါက setting ၏အတိုင်းအတာသည်မမှန်ကန်ပါ။

 mb_internal_encoding("UTF-8"); // မှန်ကန်သော:ပြည်တွင်းရေး encoding ထားပါ
ini_set("default_charset", "UTF-8"); // သာ output ကိုသက်ရောက်သည်

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

4 ။ လျှောက်လွှာဇာတ်လမ်းဥပမာ - ဇာတ်ကောင်အပြောင်းအလဲနဲ့ပလက်ဖောင်းဖွဲ့စည်းမှု

ဘာသာစကားမျိုးစုံစာလုံးများကိုကိုင်တွယ်သော 0 ဘ်ဆိုဒ်တစ်ခုကဲ့သို့သောအမှန်တကယ်စီမံကိန်းများတွင်အောက်ပါကုဒ်ကိုစတင်ရန် configuration file သို့ထည့်သွင်းနိုင်သည်။

 mb_internal_encoding("UTF-8");
mb_http_input("UTF-8");
mb_http_output("UTF-8");
mb_language("uni");

if (isset($_GET['debug_mb'])) {
    echo "<pre>";
    print_r(mb_get_info());
    echo "</pre>";
}

သင် https://gitbox.net/index.php?debug_mb=1 ကို သင်ရရှိသည့်အခါ, လွယ်ကူစွာ debugging အတွက်လက်ရှိ Mbstring Configuration Information ကိုလျင်မြန်စွာရယူနိုင်သည်။

V. နိဂုံးချုပ်

MB_Get_info () PHP Multibyte String Reading ပတ်ဝန်းကျင်ကိုနားလည်ရန်နှင့် debugging လုပ်ရန်မရှိမဖြစ်လိုအပ်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါး၏ရှင်းလင်းချက်အားဖြင့်ကျွန်ုပ်သည်အသုံးပြုမှုနည်းလမ်းကိုကျွမ်းကျင်ပြီးပြီးသားကိုပိုမိုကောင်းမွန်စွာကိုင်တွယ်နိုင်ပြီး, ၎င်းသည်နိုင်ငံတကာနှင့်ဇာတ်ကောင် encoding ပြောင်းလဲခြင်းကဲ့သို့သောအထိခိုက်မခံနိုင်သောအခြေအနေများနှင့်ဆက်ဆံရာတွင်သင်၏ယုံကြည်စိတ်ချရဆုံးလက်ထောက်ဖြစ်လိမ့်မည်။

PHP coding ကျွမ်းကျင်မှုဆိုင်ရာပိုမိုသိရှိလိုပါကကျွန်ုပ်တို့၏တရားဝင်စာရွက်စာတမ်းများကိုကြည့်ရှုခြင်းသို့မဟုတ် developer အသိုင်းအဝိုင်းသို့ဝင်ရောက်ကြည့်ရှုနိုင်သည်