အချက်အလက်သန့်ရှင်းရေးနှင့်စံသတ်မှတ်ခြင်းသည်အထူးသဖြင့် HTML စားပွဲများ, JSON interfaces များသို့မဟုတ် API အချက်အလက်များမှ API အချက်အလက်များကိုထုတ်ယူရန်လိုအပ်သည့်အခါဝက်ဘ်များ, JSON interfaces များသို့မဟုတ် API အချက်အလက်များကိုထုတ်ယူရန်လိုအပ်သည့်အခါ၎င်းသည်အလွန်အရေးကြီးသောအလုပ်ဖြစ်သည်။ နောက်ဆက်တွဲအချက်အလက်အပြောင်းအလဲများနှင့်ယုတ္တိရှိသောဆုံးဖြတ်ချက်များကိုလွယ်ကူချောမွေ့စေရန်အတွက်စာလုံးအကြီးများအားလုံးဖြစ်ရန် Array ရှိအဓိကအမည်များကိုကျွန်ုပ်တို့မကြာခဏပေါင်းစည်းရန်လိုအပ်သည်။
PHP တွင် Array_change_key_Key_case () သည်ထိရောက်သောလက်တွေ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်အမှန်တကယ် web crawler မြင်ကွင်းမှစတင်ပါလိမ့်မည်။ ဤလုပ်ဆောင်မှုကို အသုံးပြု. Crawler data processing တွင်၎င်း၏ထိရောက်သော application ကိုမိတ်ဆက်ပေးလိမ့်မည်။
array_change_key_case(array $array, int $case = CASE_LOWER): array
$ array : input ၏မူလခင်းကျင်း;
$ အ မှု ။
ဤလုပ်ဆောင်ချက်သည်အဘယ်သူ၏အမည်များကိုသတ်မှတ်ထားသောအမှုသို့ပြောင်းလဲသွားပြီဖြစ်သောခင်းကျင်းအသစ်တစ်ခုကိုပြန်လည်ရောက်ရှိစေသည်။
ကျွန်ုပ်တို့သည် https://api.m66.net/data/products မှ JSON interface ကိုဖမ်းပြီးအောက်ပါဖွဲ့စည်းပုံကိုရရှိသည်ဆိုပါစို့။
$data = [
"ProductID" => 123,
"ProductName" => "USB Cable",
"PRICE" => 9.99,
"currency" => "USD"
];
သင်မြင်နိုင်သည့်အတိုင်းဤသော့ချက်အမည်များသည်အလွန်ကိုက်ညီမှုမရှိပါ။ ဤအချက်အလက်အမျိုးအစားကိုလုပ်ဆောင်သောအခါ $ ဒေတာ ['စျေးနှုန်း'] တိုက်ရိုက်အသုံးပြုပါကကျွန်ုပ်တို့သည်အမှန်တကယ်သော့သည် စျေးနှုန်း ဖြစ်သည်။ ဒီပြ problem နာကိုဖြေရှင်းဖို့ array_change_key_ky_case () ကိုသုံးနိုင်တယ်။
$normalizedData = array_change_key_case($data, CASE_LOWER);
echo $normalizedData['price']; // ထုတ်လုပ်ခြင်း:9.99
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်အဓိကသော့ချက်အမည်များကိုစည်းလုံးညီညွှတ်စွာကိုင်တွယ်နိုင်ပြီးစာလုံးအကြီးများနှင့်အများအားဖြင့်တရားစီရင်ခြင်းဆိုင်ရာအကိုင်းအခက်များကိုရေးရန်မလိုအပ်တော့ပါ။
အကယ်. တွားသွားသည့်ဒေတာသည်အသိုက်ခင်းကျင်းမှုတစ်ခုဖြစ်သည်။
$data = [
"ProductID" => 123,
"Details" => [
"Manufacturer" => "XYZ Corp",
"Warranty" => "1 year"
]
];
ဤအချိန်တွင် array_change_key_Key_case () သည် ထိပ်တန်းသော့အမည်များကိုသာလုပ်ဆောင်လိမ့်မည်မဟုတ်ဘဲ subarray ကိုပြန်လည်ပြုပြင်မွမ်းမံလိမ့်မည်မဟုတ်ချေ။ သော့နာမည်အမည်ကိုအားဖြည့်စွက်ရန်လိုအပ်ပါကအောက်ပါထုံးစံ function ကိုသုံးနိုင်သည်။
function array_change_key_case_recursive(array $array, int $case = CASE_LOWER): array {
$result = [];
foreach ($array as $key => $value) {
$key = is_string($key) ? ($case === CASE_UPPER ? strtoupper($key) : strtolower($key)) : $key;
$result[$key] = is_array($value) ? array_change_key_case_recursive($value, $case) : $value;
}
return $result;
}
$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);
echo $normalizedData['details']['manufacturer']; // ထုတ်လုပ်ခြင်း:XYZ Corp
ဝက်ဘ်တွား 0 န်ထမ်းများတွင် JSON_Decode () ကို သုံးလေ့ရှိသည်။ Key Name Unified Operations ကိုအသုံးပြုရန်ပိုမိုလွယ်ကူစေရန်, decoding လုပ်သည့်အခါ Associative Array ကိုတိုက်ရိုက်ပြန်ပို့ရန်အကြံပြုပါသည်။
$json = file_get_contents("https://api.m66.net/data/products");
$data = json_decode($json, true); // ဒုတိယ parameter သည်ဖြစ်ပါတယ် true,အဆိုပါ Associative Array ပြန်လာသည်
$normalizedData = array_change_key_case_recursive($data, CASE_LOWER);
ဤနည်းအားဖြင့်ပြုပြင်ထားသောခင်းကျင်းဖွဲ့စည်းပုံသည်ပိုမိုတသမတ်တည်းဖြစ်လိမ့်မည်။
စည်းလုံးညီညွတ်သောကိစ္စရပ်များအတွက်အရေးယူဆောင်ရွက်ခြင်းအမှုအရာသည်အထူးသဖြင့်အရင်းအမြစ်များကိုပေါင်းစည်းခြင်း, ရှာဖွေခြင်း, မြေပုံရေးခြင်း, PHP ၏ Built-in array_change_key_Key_case () သည်ပိုမိုကောင်းမွန်သောအကောင်အထည်ဖော်မှုနှင့်အတူရှုပ်ထွေးသောအချက်အလက်များကိုအလွယ်တကူကိုင်တွယ်နိုင်သည့်ထိရောက်သောဖြေရှင်းချက်တစ်ခုပေးသည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်မှုကို tool method တစ်ခုအဖြစ် encapsulate လုပ်ရန်နှင့် crawler module များ၏အချက်အလက်သန့်ရှင်းရေးအဆင့်တွင်တစ်ပုံစံတည်းသုံးရန်အကြံပြုသည်။ ကုဒ်တစ်ခုတည်းပါသောသော့ချက်အမည်ပြ problem နာကိုအလွယ်တကူဖြေရှင်းနိုင်လိမ့်မည်။