လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ဒေတာဘေ့စ် encoding နှင့်ဇာတ်ကောင်အစုံသည် PHP တွင် MB_Get_info နှင့်ကိုက်ညီမှုရှိမရှိမည်သို့စစ်ဆေးရမည်နည်း

ဒေတာဘေ့စ် encoding နှင့်ဇာတ်ကောင်အစုံသည် PHP တွင် MB_Get_info နှင့်ကိုက်ညီမှုရှိမရှိမည်သို့စစ်ဆေးရမည်နည်း

gitbox 2025-05-11

ဘာသာစကားအမျိုးမျိုးသော 0 ဘ်ဆိုဒ်များသို့မဟုတ်အသုံးချပရိုဂရမ်များများရေးဆွဲသည့်အခါ developer များအတွက်ဇာတ်ကောင် encoding ပြ problems နာများသည် developer များအတွက်ခေါင်းကိုက်ဖွယ်ဖြစ်လာသည်။ အထူးသဖြင့်ဒေတာဘေ့စ်နှင့် PHP အစီအစဉ်အကြားဇာတ်ကောင်အစုံများသည်ကိုက်ညီမှုရှိသည့်အခါ, PHP သည်ဇာတ်ကောင် set settings ကိုထိန်းချုပ်ရန်နည်းလမ်းများစွာကိုထောက်ပံ့သော်လည်း Mbstring extension တွင် Mbstring extension တွင်လက်တွေ့ကျသည့်လုပ်ဆောင်မှုကိုသင်လျစ်လျူရှုနိုင်သည်

ဤဆောင်းပါးသည် PHP မှလက်ရှိအသုံးပြုသော Multibyte အက္ခရာများကိုစစ်ဆေးရန် MB_GET_InFO () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးပြီးနှစ်ခုသည်တသမတ်တည်းရှိမရှိဆုံးဖြတ်ရန်ဒေတာဘေ့စ်ချိန်ညှိချက်များနှင့်နှိုင်းယှဉ်ပါလိမ့်မည်။

mb_get_info () ?

MB_Get_info () သည်လက်ရှိ Mbstring ၏သက်ဆိုင်ရာ setting ကိုပြန်ပို့ပေးရန် PHP Multibyte String Extension (MBString) တွင်အလုပ်လုပ်သည်။

function ရှေ့ပြေးပုံစံ:

 mb_get_info(string $type = null): string|array
  • အဘယ်သူမျှမ parameters တွေကိုမဖြတ်တဲ့အခါသက်ဆိုင်ရာ settings အားလုံးပါတဲ့ array ကိုပြန်ပို့သည်။

  • ထိုကဲ့သို့သော "internal_encoding" ကဲ့သို့သော parameters တွေကိုဖြတ်သန်းခြင်းသည်လက်ရှိ internal encoding ကိုရနိုင်သည်။

လက်တွေ့ - PHP နှင့်ဒေတာဘေ့စ်၏ encoding ကိုက်ညီမှုရှိမရှိစစ်ဆေးပါ

ဒေတာဘေ့စ်နှင့်ချိတ်ဆက်သောအခါ utf8mb4 သို့သင် encoding ကိုသတ်မှတ်ထားကြောင်းယူဆပြီး PHP ၏ Multibyte string settings သည်အောက်ပါအဆင့်များမှတဆင့်တသမတ်တည်းဖြစ်ကြောင်းကျွန်ုပ်တို့အတည်ပြုနိုင်သည်။

အဆင့် 1: ဒေတာဘေ့စ်ကိုချိတ်ဆက်ပြီးဇာတ်ကောင်သတ်မှတ်ထားပါ

 $mysqli = new mysqli('localhost', 'user', 'password', 'my_database');
$mysqli->set_charset('utf8mb4');

ဒေတာဘေ့စ် connection ၏ဇာတ်ကောင်အစုကို UTF8MB4 ကဲ့သို့သောသင်လိုချင်သည့်ပစ်မှတ် encoding ကိုသတ်မှတ်ထားပါ။

အဆင့် 2: Mbstring ၏လက်ရှိချိန်ညှိချက်များကိုစစ်ဆေးပါ

 $mbInfo = mb_get_info();

echo "ယခု mbstring ပြည်တွင်းရေး encoding: " . $mbInfo['internal_encoding'] . PHP_EOL;

သို့မဟုတ်အရေးအသား၏တစ် ဦး ကပိုပြီးတိကျတဲ့နည်းလမ်း:

 echo "ယခု mbstring ကုဒ်: " . mb_get_info("internal_encoding") . PHP_EOL;

ပုံမှန်အားဖြင့် MBString ၏အတွင်းပိုင်း encoding သည် UTF-8 ဖြစ်နိုင်သည်, သို့သော်ရှေ့နောက်မညီမှုများမှကာကွယ်ရန်သင်အတိအလင်းထားသင့်သည်။

 mb_internal_encoding("UTF-8");

အဆင့် 3: သိကောင်းစရာများကိုနှိုင်းယှဉ်ပါ

ပြီးပြည့်စုံသောထောက်လှမ်းကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
$mysqli = new mysqli('localhost', 'user', 'password', 'my_database');
$mysqli->set_charset('utf8mb4');

mb_internal_encoding("UTF-8");

$dbCharset = $mysqli->character_set_name(); // ဒေတာဘေ့စ်ဆက်သွယ်မှုများအတွက် set ကိုရယူပါ
$phpCharset = mb_get_info("internal_encoding"); // ရယူ PHP ဇာတ်ကောင်အစုံ

if (strcasecmp($dbCharset, $phpCharset) === 0 || stripos($dbCharset, $phpCharset) !== false) {
    echo "? ဒေတာဘေ့စ်ဇာတ်ကောင်အစုံနှင့် PHP ၏ mbstring ကုဒ်一致:$dbCharset" . PHP_EOL;
} else {
    echo "? မစုံမျက်နှာ!数据库使用၏是 $dbCharset,PHP mbstring 使用၏是 $phpCharset" . PHP_EOL;
}
?>

အပိုဆောင်းအကြံပြုချက်များ

  1. Entry File တွင်ထည့်သွင်းထားသည့်အတိုင်း ပုံမှန် encoding ကိုအမြဲတမ်းသတ်မှတ်ထားပါ

  2. Mbstring extension ကိုဖွင့်ထားရှိမရှိစစ်ဆေးပါ

 if (!extension_loaded('mbstring')) {
    die("mbstring extension ကိုဖွင့်မရပါ,ကျေးဇူးပြု php.ini ဖွင့်လှစ်!");
}
  1. ရှေ့ဆုံးမရှေ့နောက်ညီညွတ်မှုကိုထိန်းသိမ်းရန် - ရှေ့ -IND-END HTML စာမျက်နှာများသည်လည်းတသမတ်တည်းဇာတ်ကောင်အစုံများကိုလည်းကြေငြာသင့်သည်။

 <meta charset="UTF-8">

အကျဉ်းချုပ်

MB_GEGET_InFO () သည်ဒေတာဘေ့စ်ဇာတ်ကောင် set settings ကိုတိုက်ရိုက်ဝင်ရောက်ခြင်းကိုတိုက်ရိုက်မဝင်ရောက်နိုင်သော်လည်း Php Multibyte string ကိုစောင့်ကြည့်ရန်ပြတင်းပေါက်တစ်ခုပေးသည်။ ၎င်း၏ရလဒ်များကိုဒေတာဘေ့စ်နှင့်ချိတ်ဆက်ထားသောဇာတ်ကောင်အစုံနှင့်နှိုင်းယှဉ်ခြင်းအားဖြင့်, သင်ကကိုက်ညီမှုကို encodings ကိုပိုမိုလွယ်ကူစွာဖြေရှင်းနိုင်သည်။ ဇာတ်ကောင်သတ်မှတ်ချက်ပြ problems နာများကိုရပ်တန့်ခြင်းသင်၏ဖွံ့ဖြိုးတိုးတက်မှုလုပ်ငန်းစဉ်ကိုအနှောက်အယှက်ဖြစ်စေပါ။ ၎င်းကိုကြိုတင်စစ်ဆေးပြီး 4 င်းတို့၏အားထုတ်မှုထက်ဝက်ရလဒ်ကိုနှစ်ကြိမ်ရပါ။

ပိုမိုသော coding ကျွမ်းကျင်မှုများအတွက် ကျေးဇူးပြု. https://gitbox.net/php/encoding- ဂူးဆို