နေ့စဉ် PHP ဖွံ့ဖြိုးတိုးတက်မှုတွင် "whitelist keys" (သို့) "Blacklist သော့ချက်သော့များ" အပေါ် အခြေခံ. Array များကို filter လုပ်ရန်လိုအပ်သည်။ PHP မှပေးသော array_flip () နှင့် array_intersect_key () လုပ်ဆောင်ချက်များကို PHP မှပေးသောလုပ်ဆောင်ချက်များသည်ဤလိုအပ်ချက်ကိုအလွန်ထိရောက်စွာရရှိနိုင်ပါသည်။ ဤဆောင်းပါးသည် array filtering ၏လုပ်ငန်းတာဝန်ကိုပြီးမြောက်ရန်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးရန်တိကျသောကုဒ်နမူနာများကိုအသုံးပြုလိမ့်မည်။
ဤလုပ်ဆောင်ချက်သည်သော့ချက်များနှင့်တန်ဖိုးများကိုခင်းကျင်းရန် swap လုပ်ရန်အသုံးပြုသည်။
array_flip(array $array): array
Input: array တစ်ခု။
output: key valch pair တစုံကိုလှန်လိုက်ပြီးနောက်တွင်ခင်းကျင်းမှု (မှတ်ချက် - မူရင်းခင်းကျင်းမှု၏တန်ဖိုးသည်ထူးခြားသည်, သော့အတွက်စကေးတန်ဖိုးတစ်ခုအဖြစ်အသုံးပြုနိုင်သည်။
ဤလုပ်ဆောင်ချက်သည်အခြားခင်းကျင်းမှုတစ်ခုတွင်သော့များအားလုံးတည်ရှိရာခင်းကျင်းအတွင်းရှိ element များရှိ element များကိုပြန်ပို့ရန်အသုံးပြုသည်။
array_intersect_key(array $array, array ...$arrays): array
input: နှစ်ခုသို့မဟုတ်နှစ်ခုထက်ပိုသော arrays ။
Output: တစ်ချိန်တည်းမှာပင်နောက်ဆက်တွဲခင်းကျင်းမှုတွင်ပေါ်လာသောပထမခင်းကျင်းမှုတွင်သာဖော်ပြထားသည်။
အသုံးပြုသူပုံစံမှအောက်ပါအချက်အလက်များကိုကျွန်ုပ်တို့လက်ခံရရှိသည်ဆိုပါစို့။
$userInput = [
'username' => 'john_doe',
'password' => '123456',
'email' => 'john@example.com',
'token' => 'abcd1234', // တရားမဝင်လယ်ကွင်း
];
ကျွန်ုပ်တို့သည် "Username ' , ' Password '' နှင့် 'email' ကိုသာသိမ်းထားလိုပြီးအခြားသူများကိုစစ်ထုတ်သင့်သည်။
$allowedKeys = ['username', 'password', 'email'];
// ပြောင်းလဲခွင့်ပြုထားသောသော့ချက်များကိုသော့ချက်အမည်များသို့ပြောင်းပါ
$allowedKeysFlipped = array_flip($allowedKeys);
// လမ်းဆုံကိုရယူပါ,တူညီသောသော့နှင့်အတူလယ်ကွင်းထားပါ
$filteredInput = array_intersect_key($userInput, $allowedKeysFlipped);
print_r($filteredInput);
Array
(
[username] => john_doe
[password] => 123456
[email] => john@example.com
)
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည်တရားမ 0 င်လယ်ကွင်းများကိုရှောင်ရှားရန်တရားမ 0 င်လယ်ကွင်းများကိုရှောင်ရှားနိုင်ရန်အတွက်ပြင်ဆင်မှုများကိုပြောင်းလွယ်ပြင်နိုင်သည့်ပြောင်းလွယ်ပြင်လွယ်များကိုလုံခြုံစွာနှင့်လုံလုံခြုံခြုံစစ်ထုတ်နိုင်သည်။
သင် API interface ကိုတီထွင်ပြီးအောက်ပါ URL parameters များကိုလက်ခံရရှိသည်ဟုဆိုပါစို့။
https://m66.net/api/user/update?username=jane&password=78910&is_admin=1
0 န ် ဆောင်မှုခံယူသူသည် is_admin ကဲ့သို့သောအထိခိုက်မခံသောအကွက်များကိုမပြုပြင်စေချင်ပါ ။
သင်ဤသို့လုပ်နိုင်သည် -
$input = $_GET;
$allowed = ['username', 'password'];
$safeInput = array_intersect_key($input, array_flip($allowed));
// ယခု $safeInput သာခွင့်ပြုထားသောလယ်ကွင်းများပါရှိသည်
ဤနည်းလမ်းသည် API parameters တွေကို၏အဖြူရောင်ဝါဒီယန္တရားကိုအလွယ်တကူအကောင်အထည်ဖော်နိုင်သည်။
Array_flip () နှင့် array_intesect_key () ကိုပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်သော့ခတ်စစ်ဆင်ရေးကိုအကောင်အထည်ဖော်နိုင်သည်။ ဤချဉ်းကပ်မှုသည် code နှင့်စွမ်းဆောင်ရည်မြင့်မားခြင်းသာမကထိန်းသိမ်းရန်လွယ်ကူသည်။ ၎င်းသည်ပုံစံပြုပြင်ခြင်း, API Parameter သည်စီစစ်ခြင်းနှင့်အခြားအခြေအနေများအတွက်သင့်တော်သည်။
အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤယုတ္တိဗေဒကို function တစ်ခုအဖြစ်ရေးဆွဲရန်အကြံပြုသည်။
function filter_array_keys(array $data, array $allowedKeys): array {
return array_intersect_key($data, array_flip($allowedKeys));
}
ဤနည်းအားဖြင့်သင်၏ကုဒ်သည် modular နှင့်ဖတ်နိုင်သည်။