PHP တွင် JSON ဒေတာများကိုလုပ်ဆောင်သောအခါတစ်ခါတစ်ရံကျွန်ုပ်တို့သည်လယ်ကွင်းအမည်ကိုအစားထိုးရန်လိုအပ်သည်။ အသုံးများသောနည်းလမ်းမှာ JSON ကိုခင်းကျင်းရန်နှင့်၎င်းကိုအချို့သောအခြေအနေများတွင်ပြုလုပ်ရန်အတွက်ပြုလုပ်ရန်ဖြစ်သည်။ ဤဆောင်းပါးသည် PHP ၏ MB__eregi_replace function ကို သုံး. JSON ဒေတာတွင်လယ်ကွင်းအမည်များကိုမည်သို့အစားထိုးပြီး၎င်းကိုနမူနာကုဒ်ဖြင့်ရှင်းပြရမည်ကိုအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
MB_eregi_replace သည် PHP Multi-byte string function library (Mbstring) တွင်ပုံမှန်အစားထိုးလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်ကိစ္စရပ်နှင့်ဆိုင်သောပုံမှန်အားဖြင့်ကြိုးကြိုးများကိုပြန်လည်နေရာချထားရေးကိုထောက်ပံ့ပေးပြီး Multi-byte အက္ခရာများကိုထောက်ပံ့သည်။
function ရှေ့ပြေးပုံစံ:
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$ ပုံစံ - ကိုက်ညီရန်ပုံမှန်စကားရပ်ပုံစံ (ကိစ္စတွင်မခံစားနိုင်သော)
$ အစားထိုး : string ကိုအစားထိုး
$ string : command string ကို
$ option : optional parameter, ကိုက်ညီမှုအပြုအမူကိုသတ်မှတ်ပါ, ပုံမှန်အားဖြင့်ပုံမှန်အားဖြင့်အသုံးပြုကြသည်
JSON String နယ်ပယ်အမည်များကိုများသောအားဖြင့်နှစ်ဆကိုးကားချက်များဖြင့်ထုပ်ပိုးပြီးတိုက်ရိုက်ကြိုးကိုအစားထိုးသောအခါအမှားများပြုလုပ်ရန်လွယ်ကူသည်။
MB_ereGi_replace သည် bytes multi-bytes များကိုထောက်ပံ့ပေးပြီး JSON နှင့်အတူ encoding formats အမျိုးမျိုးဖြင့်သဟဇာတဖြစ်သည်။
အစားထိုးခြင်းသို့ ဦး တည်သောအဖြစ်အပျက်ကွဲပြားခြားနားမှုများကိုရှောင်ရှားရန်ပံ့ပိုးမှုအမှုအာရုံမခံစားနိုင်သောအစားထိုးခြင်း,
ရိုးရှင်းသော Field Name အစားထိုးနေရာများအတွက်သင့်တော်သည်။ JSON ကို ဦး စွာခွဲခြမ်းစိတ်ဖြာရန်မလိုအပ်ပါ။
အောက်ပါ JSON string ရှိပါသည်ဆိုပါစို့:
{
"UserName": "Zhang San",
"UserAge": 28,
"UserEmail": "zhangsan@example.com"
}
ကျွန်ုပ်တို့သည် "User" ကို "အသင်း 0 င်" နှင့်အတူလယ်ကွင်းအားလုံးတွင် "အသုံးပြုသူ" ကိုအစားထိုးချင်တယ်။ အဆင့်များစစ်ဆင်ရေးအဆင့်များ -
ပုံမှန်ကိုက်ညီသောကွင်းဆက်အမည်အပိုင်းကိုသုံးပါ။ ဥပမာအားဖြင့် အသုံးပြုသူအမည်ကို "Username" နှင့်ကိုက်ညီရန်။
MB_eregi_rere_replace ကိုကိုက်ညီသောလယ်ကွင်းအမည်ကိုအစားထိုးရန်။
အသစ်တစ်ခု JSON string ကို output ကို။
<?php
// မူရင်းဖြစ်သော JSON ကြိုး
$json = '{"UserName":"Zhang San","UserAge":28,"UserEmail":"zhangsan@m66.net"}';
// အစားထိုးစည်းမျဉ်းများကိုသတ်မှတ်ပါ,လယ်ပြင်အမည်ကိုရှေ့ဆက် "User" အစားထိုးလိုက်ပါ "Member"
// ပုံမှန်စကားရပ်နှင့်အတူနှစ်ဆကိုးကားကိုက်ညီ User အစအ ဦး မှာလယ်ပြင်အမည်,လယ်ပြင်၏နောက်တစ်ဝက်ကိုဖမ်းယူပါ
$pattern = '"User([a-zA-Z0-9_]*)"';
// 替换ကြိုး,သေတမ်းစာ User အစားထိုးလိုက်ပါ Member,နောက်ဆက်မပြောင်းလဲစောင့်ရှောက်ပါ
$replacement = '"Member\\1"';
// အသုံးပြု mb_eregi_replace အစားထိုးပါစေ
$newJson = mb_eregi_replace($pattern, $replacement, $json);
// output ကိုအစားထိုးသည် JSON ကြိုး
echo $newJson;
?>
{"MemberName":"Zhang San","MemberAge":28,"MemberEmail":"zhangsan@m66.net"}
ပုံမှန်အသုံးအနှုန်း '"အသုံးပြုသူ (A-Za-Za-Z0-9 _] *)" အသုံးပြုသူ "သည် " User "ဖြင့်" အသုံးပြုသူ "ဖြင့်စတင်သောနယ်ပယ်အမည်များအားလုံးနှင့်ကိုက်ညီသည်။
ကျန်ရှိသောလယ်ကွင်းအမည်ကိုရယူရန် Capture Group (A-ZA-Z0-9 _] *) ကိုသုံးပါ။
"အသင်း 0 င်" နှင့်အတူ "user" နှင့်အတူ "user" ကိုအစားထိုးရန် "အဖွဲ့ဝင် \\ 1" ကို သုံးပါ။
ထိုသို့ပြုလုပ်ခြင်းသည်လယ်ကွင်း၏သက်ဆိုင်ရာတန်ဖိုးကိုမထိခိုက်ပါ။
JSON တွင်ပေါ်ရှိ URL ဒိုမိန်းအမည်ကို M66.net နှင့်တွေ့ဆုံရန်လိုအပ်ချက်များနှင့်တွေ့ဆုံရန် M66.net ဖြင့်အစားထိုးခဲ့သည်။
ဤနည်းလမ်းသည် JSON အတွက်ရိုးရှင်းသော Field Name ဖွဲ့စည်းပုံနှင့်စံသတ်မှတ်ချက်ပုံစံဖြင့်သာသင့်လျော်သည်။
JSON string တွင်ရှုပ်ထွေးသောအသိုက်ဖွဲ့စည်းပုံများပါ 0 င ်ပါက JSON_Decode ဖြင့် ပထမအကြိမ်ပြုလုပ်ရန်အကြံပြုသည်။
MB_ereGi_replace သည် ရှုပ်ထွေးသောပုံမှန် syntax ကိုအခိုင်အမာပြောဆိုခြင်းကိုမထောက်ပံ့ပါ။ အစားထိုးလိုအပ်ချက်များသည်ရှုပ်ထွေးပြီးပါက ကျေးဇူးပြု. PCRE function သို့မဟုတ် JSON resolution အစီအစဉ်ကိုရွေးချယ်ပါ။