PHP Development တွင် Data Interaction တွင်အချက်အလက်များအပြန်အလှန်ဆက်သွယ်မှုသို့မဟုတ်သိုလှောင်မှုများကိုအချက်အလက်အပြန်အလှန်ဆက်သွယ်မှုသို့မဟုတ်သိုလှောင်မှုကိုဖွင့်ရန် JSO format ရှိ strings များကို strings များသို့ပြောင်းလဲရန်လိုအပ်သည်။ PHP တွင် JSON_entode function ကို JSON format သို့ပြောင်းလဲနိုင်သည်။ အခြား encodings (ဥပမာ GBK) ကဲ့သို့သောအခြား encodings များကိုထောက်ပံ့ရန်အတွက် JSON function သို့ array သို့အကောင်အထည်ဖော်ရန် requary function များကိုစိတ်ကြိုက်ပြုလုပ်ရန်လိုအပ်သည်။
PHP ဗားရှင်းသည် 5.4 အထက်ရှိသည့်အတွက် PHP သည်ဗားရှင်း 5.4 ဖြင့်စတင်သည်ကိုသေချာအောင်လုပ်ပါ။
GBK Encoding ကိုထောက်ပံ့ရန် Mbstring extension ကို install လုပ်ရမည်။ ဤတိုးချဲ့မှုသည် Multi-byte strings များအတွက်အပြောင်းအလဲနဲ့စွမ်းရည်များကိုထောက်ပံ့ပေးသည်။ အောက်ပါ command ကိုသုံးနိုင်သည်။
sudo apt-get update
sudo apt-get install php-mbstring
ထို့နောက်ကျွန်ုပ်တို့သည် JSON function သို့ array ကိုအကောင်အထည်ဖော်ရန်ထုံးစံ recursive function ကိုရေးပါလိမ့်မည်။ အောက်ပါလုပ်ဆောင်ချက်သည် function ကိုအကောင်အထည်ဖော်ခြင်းဖြစ်သည်။
/**
* array အသွင်ကူးJSONformat string ကို(ထောက်GBKကုဒ်)
* @param array $array ပြောင်းလဲခံရဖို့ Array
* @return string JSONformat string ကို
*/
function json_encode_gbk($array) {
$array = array_map('urlencode_gbk', $array);
$json = json_encode($array);
return urldecode_gbk($json);
}
/**
* တစ် string ကိုလုပ်ဆောင်ပါGBKကုဒ်
* @param string $str 待ကုဒ်的字符串
* @return string ကုဒ်后的字符串
*/
function urlencode_gbk($str) {
return urlencode(mb_convert_encoding($str, 'GBK', 'UTF-8'));
}
/**
* တစ် string ကိုလုပ်ဆောင်ပါGBKdecoding
* @param string $str 待decoding的字符串
* @return string decoding后的字符串
*/
function urldecode_gbk($str) {
return mb_convert_encoding(urldecode($str), 'UTF-8', 'GBK');
}
အထက်ပါကုဒ်တွင် json_encode_gbk function သည် array_map မှ array ရှိ array ရှိ element တစ်ခုစီတွင် urlencode_gbk လုပ်ခြင်းကို ဦး စွာလုပ်ဆောင်သည်။ နောက်ဆုံးတွင် urldecode_gbk function သည်၎င်းကို GBK မှ UTF-8 format ဖြင့်ပြောင်းလဲပေးသည်။
ငါတို့မှာတရုတ်ပါဝင်တဲ့ခင်းကျင်းမှုရှိတယ်ဆိုပါစို့။
$array = array(
'နံမယ်' => 'Zhang San',
'အသက်အရွယ်' => 25,
'ကျားကန်' => 'ယောကျ်ားဖြစ်သော'
);
json_encode_gbk function ကိုခေါ်ဆိုခြင်းဖြင့်ခင်းကျင်းမှုကို JSO format ကိုပြောင်းလဲနိုင်သည်။
$json = json_encode_gbk($array);
echo $json;
output ရလဒ် -
{
"နံမယ်": "Zhang San",
"အသက်အရွယ်": 25,
"ကျားကန်": "ယောကျ်ားဖြစ်သော"
}
အပေါ်ကပြထားတဲ့အတိုင်းတရုတ်အက္ခရာများကို Unicode Encoding သို့အောင်မြင်စွာကူးပြောင်းခဲ့သည်။
ထုံးစံရမှတ်လုပ်ငန်းများမှတဆင့် JSON function သို့ array ကိုအောင်မြင်စွာအကောင်အထည်ဖော်နိုင်ပြီး GBK encoding ကိုထောက်ပံ့ခဲ့သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်သင်သည် JSON format ကို JSON format သို့ပြောင်းရန်နှင့်အခြား encodings သို့ပြောင်းရန်လိုအပ်ပါကသင်ကတိုးချဲ့ရန်အလားတူနည်းလမ်းကိုသုံးနိုင်သည်။
ထုံးစံအတိုင်းပြန်လည်ရယူထားသောလုပ်ဆောင်ချက်များ၏အဓိကအယူအဆသည်ပြောင်းလဲခြင်းမပြုမီခင်းကျင်းအတွင်းရှိ string ကို encode လုပ်ရန်ဖြစ်သည်။ ဤသည် string ကိုကွဲပြားခြားနားသော encodings အကြားမှန်ကန်စွာပြောင်းလဲကြောင်းသေချာစေသည်။
PHP တွင် JSON function သို့ array သို့ array ကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုနားလည်ရန်ဤဆောင်းပါးသည်သင့်အားနားလည်ရန်ကူညီနိုင်သည်ဟုမျှော်လင့်ပါ။