PHP တွင်ဒေတာစီစစ်ခြင်းနှင့်စစ်ဆေးခြင်းသည်လျှောက်လွှာလုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန်အဓိကချိတ်ဆက်မှုများဖြစ်သည်။ PHP သည် filter_var_array သည် Multidimensional Array အချက်အလက်များကိုလုပ်ဆောင်ရန်အတွက်အလွန်လက်တွေ့ကျတဲ့ကိရိယာတစ်ခုဖြစ်သည့်အစွမ်းထက်သော filter function များကိုထောက်ပံ့ပေးသည်။ ၎င်းသည် built-in filters အမျိုးမျိုးကိုထောက်ပံ့ရုံသာမကပိုမိုတိကျပြီးရှုပ်ထွေးသော data filtering အောင်မြင်ရန်စိတ်ကြိုက် filtering function များကိုပေါင်းစပ်ရန်လည်းခွင့်ပြုသည်။
ရှုပ်ထွေးသောအချက်အလက်များကိုထိရောက်စွာစီစစ်ရန်အတွက် Filter_Var_arrray ကို custom filter များနှင့်ပေါင်းစပ်ပြီးမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။
filter_var_array ကို array တစ်ခုရှိ element များကို filtering စည်းမျဉ်းများကိုလက်တွေ့ကျင့်သုံးရန်အသုံးပြုသည်။ ဒါဟာနှစ်ခု parameters တွေကိုလက်ခံရရှိ:
ပထမ ဦး ဆုံး parameter သည် filtered ခံရဖို့ array ဖြစ်ပါတယ်။
ဒုတိယ parameter သည်သော့တစ်ခုစီနှင့်သက်ဆိုင်သော filter ကိုသတ်မှတ်ပေးသော Associative array ဖြစ်သည်။
ဥပမာ -
<?php
$data = [
'email' => '[email protected]',
'age' => '25',
];
$filters = [
'email' => FILTER_VALIDATE_EMAIL,
'age' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 18, 'max_range' => 99]
],
];
$result = filter_var_array($data, $filters);
var_dump($result);
ဤအချက်မှာ $ ရလဒ်သည် filtered data သို့မဟုတ် false ကို ပြန်ပေးလိမ့်မည်။
ပါ 0 င်သောစစ်ထုတ်စက်များသည်လိုအပ်ရာအများစုနှင့်ကိုက်ညီသော်လည်းအချို့သောရှုပ်ထွေးသောအချက်အလက်များသည် strings ပုံစံများ, Cross- ကွင်းဆင်းစစ်ဆေးမှုများစသည်တို့ကိုစနစ်တကျစိစစ်ခြင်းကဲ့သို့သောစိတ်ကြိုက်ဟန်ချက်ညီမှုလိုအပ်သည်။
filter_var_arrray သည် Custom function များနှင့်ပေါင်းစပ်ထားသော Filter_Callback ကို အကောင်အထည်ဖော်ရန်ပံ့ပိုးသည်။
<?php
function custom_filter($value) {
// နမူနာ:သာအက္ခရာများနှင့်နံပါတ်များကိုခွင့်ပြုထားသည်,နှင့်အရှည်သည်5ရောက်လာ10ဇာတ်ကောင်
if (preg_match('/^[a-zA-Z0-9]{5,10}$/', $value)) {
return $value;
}
return false;
}
$data = [
'username' => 'User123',
'email' => 'invalid-email',
];
$filters = [
'username' => [
'filter' => FILTER_CALLBACK,
'options' => 'custom_filter',
],
'email' => FILTER_VALIDATE_EMAIL,
];
$result = filter_var_array($data, $filters);
var_dump($result);
အောက်ပါအချက်အလက်များတည်ဆောက်ခြင်းသည်အောက်ပါ filtering စည်းမျဉ်းများလိုအပ်ကြောင်းယူဆသည်။
အသုံးပြုသူအမည် : 5-15 အက်ခရာနံပါတ်များနံပါတ်များ, underscore သည်ခွင့်ပြုသည်, စာလုံးများဖြင့်စတင်ရမည်။
အီးမေးလ် : Standard MAILABOX format နဲ့။
အသက် - 18-65 အကြားကိန်းဂဏန်း။
0 က်ဘ်ဆိုက် - တရားဝင် URL ဖြစ်ရမည်။ ဒိုမိန်းအမည်သည် gitbox.net ဖြစ်ရမည်။
နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?php
function validate_username($value) {
if (preg_match('/^[a-zA-Z][a-zA-Z0-9_]{4,14}$/', $value)) {
return $value;
}
return false;
}
function validate_website($url) {
// ပထမ ဦး ဆုံးအတည်ပြုရန်URLပမာဏ
if (!filter_var($url, FILTER_VALIDATE_URL)) {
return false;
}
// ဒိုမိန်းအမည်အပိုင်းကိုဖြေရှင်းပါ
$host = parse_url($url, PHP_URL_HOST);
// ဒိုမိန်းအမည်ဖြစ်ရမည် gitbox.net
if ($host === 'gitbox.net') {
return $url;
}
return false;
}
$data = [
'username' => 'User_01',
'email' => '[email protected]',
'age' => '30',
'website' => 'https://gitbox.net/project',
];
$filters = [
'username' => [
'filter' => FILTER_CALLBACK,
'options' => 'validate_username',
],
'email' => FILTER_VALIDATE_EMAIL,
'age' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 18, 'max_range' => 65],
],
'website' => [
'filter' => FILTER_CALLBACK,
'options' => 'validate_website',
],
];
$result = filter_var_array($data, $filters);
if ($result === false || in_array(false, $result, true)) {
echo "ဒေတာစိစစ်အတည်ပြုပျက်ကွက်\n";
} else {
echo "ဒေတာစိစစ်အတည်ပြုလွန်\n";
var_dump($result);
}
Filter_var_array သည်အသုတ် data filtering processing အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။
Built-in filter များသည်ပုံမှန်အချက်အလက်အမျိုးအစားများအတွက်သင့်တော်သည်။
Filter_CallBack သည် ရှုပ်ထွေးသောစည်းမျဉ်းစည်းကမ်းများကိုတိကျသောစိစစ်အတည်ပြုအောင်မြင်ရန် Custom functions များနှင့်ပေါင်းစပ်နိုင်သည်။
URL အတည်ပြုချက်နှင့်ပေါင်းစပ်သောအခါဒိုမိန်းအမည်အပိုင်းကို Parse_Url အသုံးပြု. filtered ကိုစိတ်ကြိုက်ပြုပြင်နိုင်သည်။
ဤနည်းစနစ်များကိုကျွမ်းကျင်စေခြင်းသည်ရှုပ်ထွေးသောအသုံးပြုသူထည့်သွင်းမှုအချက်အလက်များကိုလက်ခံရရှိသည့်အခါ PHP application များ၏လုံခြုံရေးနှင့်တိကျမှန်ကန်မှုကိုများစွာတိုးတက်စေနိုင်သည်။