ရှေ့ဆုံးခွဲထွက်ခြင်းမှုတ်သွင်းခြင်းဖြင့်ရှေ့ဆုံးသည် JSON format တွင်နောက်ခံအဆုံးသို့ data များကိုတင်ပြလေ့ရှိသည်။ ဒေတာသမာဓိနှင့်လုံခြုံရေးကိုသေချာစေရန်ဤနယ်ပယ်များသည်မျှော်လင့်ထားသည့်အကွက်များနှင့်ကိုက်ညီကြောင်းအတည်ပြုရန်လိုအပ်သည်။ PHP မှ array_diff_ukey () function ကို function သည်ကျွန်ုပ်တို့ကိုလျောက်ပတ်စွာအောင်မြင်ရန်ကူညီနိုင်သည်။
ဤဆောင်းပါးသည် array_diff_ukey () ကို မည်သို့အသုံးပြုရမည်ကိုဖော်ပြရန်ရိုးရှင်းသောဥပမာကို အသုံးပြု. အဓိကကျသောသော့ချက်အမည်များကိုရှာဖွေခွင့်ပြုသည့်ရှေ့တန်းနှင့်ကွင်းဆင်းများကတင်ပြထားသောနယ်မြေများနှင့်ဖြည့်ဆည်းပေးသည့်နယ်မြေများကိုနှိုင်းယှဉ်ရန်။
array_diff_ukey () သည် PHP built-in function တစ်ခုဖြစ်ပြီး၎င်းသည်ခင်းကျင်းမှုနှစ်ခု၏အဓိကအမည်များကိုနှိုင်းယှဉ်ပြီးနှိုင်းယှဉ်မှုအတွက်အသုံးပြုသူသတ်မှတ်ထားသော callback function ကိုအသုံးပြုသည်။ ၎င်းသည်ပထမဆုံးခင်းကျင်းမှုတွင်ဖော်ပြထားသောသော့ချက်အမည်နှင့်သက်ဆိုင်သောတန်ဖိုးကိုပြန်ပို့သည်။
function ရှေ့ပြေးပုံစံ:
array_diff_ukey(array $array1, array $array2, callable $key_compare_func): array
ကျနော်တို့က backend ကိုအောက်ပါလယ်ကွင်းသာလက်ခံရရှိချင်တယ်ဆိုပါစို့:
$allowedFields = [
'username' => true,
'email' => true,
'age' => true,
];
ရှေ့မျက်နှာပြင်သည်အောက်ပါအချက်အလက်များကိုတင်ပြခဲ့သည်။
$submittedData = [
'username' => 'alice',
'email' => 'alice@example.com',
'age' => 25,
'is_admin' => true, // တရားမဝင်လယ်ကွင်း
];
ကျွန်ုပ်တို့သည် "IS_ADMIN" သည်တရားမဝင်သောလယ်ကွင်းဖြစ်သည်ကိုစစ်ဆေးရန်လိုအပ်သည်။
<?php
$allowedFields = [
'username' => true,
'email' => true,
'age' => true,
];
$submittedData = [
'username' => 'alice',
'email' => 'alice@example.com',
'age' => 25,
'is_admin' => true,
];
// အသုံးပြု array_diff_ukey လယ်ကွင်းနှိုင်းယှဉ်လုပ်ဆောင်ခြင်း
$invalidFields = array_diff_ukey(
$submittedData,
$allowedFields,
function($key1, $key2) {
return strcmp($key1, $key2);
}
);
if (!empty($invalidFields)) {
echo "检测到တရားမဝင်လယ်ကွင်း:\n";
foreach ($invalidFields as $field => $value) {
echo "- $field: $value\n";
}
// မှတ်တမ်းများကိုမှတ်တမ်းတင်ထားနိုင်ပါသည်သို့မဟုတ်အမှားမက်ဆေ့ခ်ျကိုပြန်ပို့နိုင်ပါတယ်
// နမူနာမှတ်တမ်း interface ခေါ်ဆိုမှု(PseudoDode):
$logUrl = 'https://api.m66.net/logs/invalid-fields';
// sendToApi($logUrl, ['fields' => array_keys($invalidFields)]);
} else {
echo "ကွင်းဆင်းအတည်ပြုအတည်ပြု。\n";
}
ရှေ့တန်းအကွက်သည်နောက်ခံနာမည်အဆုံးတွင် (ထိုကဲ့သို့သောကုလားအုတ်နှင့် underscore ကဲ့သို့သော) နှင့်ကိုက်ညီမှုမရှိပါက၎င်းကိုလယ်မြေမြေပုံ table နှင့်ပေါင်းစပ်။ အသုံးပြုနိုင်သည်။
$fieldMap = [
'userName' => 'username',
'emailAddress' => 'email',
'userAge' => 'age',
];
// စိစစ်အတည်ပြုဘို့မြေပုံ table ကိုပြောင်းပြန်
$mappedKeys = array_flip($fieldMap);
// Simulation တင်ပြချက်
$submittedData = [
'userName' => 'alice',
'emailAddress' => 'alice@example.com',
'userAge' => 25,
'adminStatus' => true,
];
$invalidFields = array_diff_ukey(
$submittedData,
$mappedKeys,
'strcmp'
);
if (!empty($invalidFields)) {
echo "အောက်ပါလယ်ကွင်းများကိုမြေပုံစားပွဲတွင်မသတ်မှတ်ထားပါ:\n";
print_r(array_keys($invalidFields));
} else {
echo "လယ်ကွင်းမြေပုံအတည်ပြု。\n";
}
Array_Diff_ukey () , မြေပုံစားပွဲပေါ်မှာမသတ်မှတ်ထားတဲ့ရှေ့တန်းမှာမသတ်မှတ်ထားတဲ့တရားမဝင်လယ်ကွင်းတွေကိုအလျင်အမြန်ရောက်သွားတယ်။ ၎င်းသည်တရားမ 0 င်ဒေတာထိုးဆေးထိုးခြင်းကိုတားဆီးရုံသာမကကွင်းဆင်းစိစစ်အတည်ပြုယုတ္တိဗေဒကိုလည်းရိုးရှင်းစေသည်။ စီမံကိန်း၏ထိန်းသိမ်းမှုနှင့်လုံခြုံရေးကိုတိုးတက်စေရန်အတွက်၎င်းကိုအထွေထွေပုံစံစိစစ်ရေးကိရိယာနည်းလမ်းတစ်ခုအနေဖြင့်၎င်းကို oncapsulate လုပ်ရန်အကြံပြုသည်။