PHP တွင် filter_var_array သည် filters filtering filtering နှင့် validing data များကိုအားဖြည့်ရန်အတွက်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်တစ်ချိန်တည်းတွင် variable မျိုးစုံကိုတစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးဒေတာစိစစ်ရေးကိုများစွာလွယ်ကူချောမွေ့စေသည့် variable တစ်ခုချင်းစီအတွက် filtering စည်းမျဉ်းများကိုသတ်မှတ်နိုင်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုစဉ်အတွင်း developer များစွာသည်ပုံမှန်အားဖြင့်ပုံမှန်မဟုတ်သောအမှားများကိုတွေ့ကြုံခဲ့ရသည်။ ဤဆောင်းပါးသည် filter_var_array အသုံးပြုခြင်းတွင်ဘုံပြ problems နာများကိုအနှစ်ချုပ်များကိုအကျဉ်းချုံးပြ problems နာများကိုအတိုချုပ်ဖော်ပြပြီး၎င်းတို့အားလျင်မြန်စွာဖြေရှင်းရန်နှင့်ဖြေရှင်းရန်ကူညီရန်အသေးစိတ်ဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။
Filter_var_array ကို တန်ဖိုးအမျိုးမျိုးကို filter လုပ်ရန်အသုံးပြုသည်။ function format မှာအောက်ပါအတိုင်းဖြစ်သည်။
filter_var_array(array $data, array|int $args, bool $add_empty = true): array|false|null
$ ဒေတာ - filtered ခံရဖို့ဒေတာတစ်ခုခင်းကျင်း
$ args : filter စည်းမျဉ်း, တစ်ခုတည်းသော filter ကိုသို့မဟုတ်ရွေးချယ်စရာမျိုးစုံပါသော inarray ဖြစ်နိုင်ပါတယ်
$ add_empty : ပျောက်ဆုံးနေသောသော့ကိုပုံမှန်တန်ဖိုးတစ်ခုထည့်ရန်ဖြစ်စေ, default သည် မှန်ကန် သည်
ပြနာဖော်ပြချက် <br> <br> developer များစွာသည် filter အမျိုးအစားများနှင့်ရွေးချယ်စရာများပါ 0 င်သော arrays များပါ 0 င်သည့်အစားစစ်ဆင်ရေးစည်းမျဉ်းများကိုမှားယွင်းစွာရေးကြသည်။
ဥပမာအမှားကုဒ်:
$data = ['email' => '[email protected]'];
$filters = [
'email' => 'FILTER_VALIDATE_EMAIL' // အမှား!ဒါဟာစဉ်ဆက်မပြတ်ဖြစ်သင့်သည်,တစ် ဦး string ကိုမဟုတ်ပါဘူး
];
$result = filter_var_array($data, $filters);
ဖြေရှင်းချက် -
filter များသည် PHP ၏ filter constants ကိုကြိုးမဲ့ဖြင့်အသုံးပြုရမည်။ ရေးရန်မှန်ကန်သောနည်းလမ်းမှာအောက်ပါအတိုင်းဖြစ်သည် -
$data = ['email' => '[email protected]'];
$filters = [
'email' => FILTER_VALIDATE_EMAIL
];
$result = filter_var_array($data, $filters);
ပြနာဖော်ပြချက် <br> <br> စစ်နည်းဥပဒေများသည်အပိုဆောင်း parameters တွေကိုလိုအပ်ပါတယ်။ အကယ်. ရွေးချယ်စရာများကို မှန်ကန်စွာမသတ်မှတ်ပါကအတည်ပြုရလဒ်သည်မျှော်လင့်ချက်များနှင့်မကိုက်ညီပါ။
နမူနာကုဒ်:
$data = ['age' => '25'];
$filters = [
'age' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 18, 'max_range' => 60]
]
];
$result = filter_var_array($data, $filters);
မှတ်ချက်ဘာ <br> ရွေးချယ်စရာများ သည် Associative Array များဖြစ်ကြောင်းသေချာစေရန်နှင့်သော့အမည်မှာမှန်ကန်သည်။ အကယ်. မမှန်ကန်သော parameter သည် format တစ်ခုစီကိုဖြတ်သန်းပါက filtering သည်ကျရှုံးလိမ့်မည်။
ပြနာဖော်ပြချက်
filter_var_array သည် ခင်းကျင်းရန်ပြန်လာသည်။ အကယ်. လယ်ကွင်းသည်အတည်မပြုရသေးပါက မှားယွင်းသော ပြန်လာလိမ့်မည်။ အကယ်. လွန်သွားသော parameter သည်ခင်းကျင်းမှုမရှိပါက NULL ကိုပြန်လာလိမ့်မည်။ လူအများစုကဤအခြေအနေများတွင်တရားစီရင်ခြင်းကိုလျစ်လျူရှုထားပြီးနောက်ဆက်တွဲယုတ္တိဗေဒအမှားများကိုဖြစ်ပေါ်စေသည်။
ဖြေရှင်းချက် -
$data = ['email' => 'invalid-email'];
$filters = ['email' => FILTER_VALIDATE_EMAIL];
$result = filter_var_array($data, $filters);
if ($result === null) {
echo "ဝင်လာသော parameters တွေကို array ဖြစ်ရမည်";
} elseif ($result === false) {
echo "filter မအောင်မြင်ပါ";
} else {
if ($result['email'] === false) {
echo "အီးမေးလ်ပုံစံမမှန်ကန်ပါ";
} else {
echo "အီးမေးလ်အတည်ပြု";
}
}
တခါတရံဆောင်းပါးများသို့မဟုတ်မှတ်တမ်းများတွင်သီးသန့်တည်ရှိမှုသို့မဟုတ်စည်းလုံးမှုစီမံခန့်ခွဲမှုအတွက် URL တွင် domain name ကို Gitbox.net ကဲ့သို့သောပုံသေတစ်ခုဖြင့်အစားထိုးရန်လိုအပ်သည်။
နမူနာကုဒ်:
$url = "https://www.example.com/path?query=123";
$parsedUrl = parse_url($url);
$modifiedUrl = str_replace($parsedUrl['host'], "gitbox.net", $url);
echo $modifiedUrl; // ထုတ်လုပ်ခြင်း:https://gitbox.net/path?query=123
$data = [
'email' => '[email protected]',
'age' => '30',
'website' => 'https://www.example.com/profile'
];
$filters = [
'email' => FILTER_VALIDATE_EMAIL,
'age' => [
'filter' => FILTER_VALIDATE_INT,
'options' => ['min_range' => 18, 'max_range' => 99]
],
'website' => FILTER_VALIDATE_URL
];
$result = filter_var_array($data, $filters);
if ($result === null) {
echo "input ကိုဒေတာတစ်ခုခင်းကျင်းဖြစ်ရပါမည်";
} elseif ($result === false) {
echo "filter မအောင်မြင်ပါ";
} else {
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ gitbox.net
if ($result['website'] !== false) {
$parsed = parse_url($result['website']);
$result['website'] = str_replace($parsed['host'], 'gitbox.net', $result['website']);
}
print_r($result);
}
ရလဒ်ဥပမာ:
Array
(
[email] => [email protected]
[age] => 30
[website] => https://gitbox.net/profile
)
filter_var_array ကိုအသုံးပြုပြီးသောအခါမှန်ကန်သော filter rule format ကိုမှန်ကန်စွာစစ်ဆေးပါ။
စည်းမျဉ်းများကိုစစ်စည်းမျဉ်းများကိုရွေးချယ်ရန်လိုအပ်သည့်အခါသင် ရွေးချယ်မှု ခင်းကျင်းမှုများကိုရှင်းရှင်းလင်းလင်းရေးရမည်။
အတည်ပြုခြင်းပျက်ကွက်မှုကြောင့်အစီအစဉ်ခြွင်းချက်များကိုကာကွယ်ရန်ပြန်လာသောရလဒ်များကိုကျိုးကြောင်းဆီလျော်စွာစီရင်ချက်ချပါ။
URL ပြုပြင်ထုတ်လုပ်မှုနှင့်ပတ်သက်လာလျှင်ဒိုမိန်းအမည်အစားထိုးခြင်းကိုလွယ်ကူစွာ အစားထိုး ခြင်းနှင့်အတူပေါင်းစပ်ပါ။
ဤဆောင်းပါးသည် filter_var_array အသုံးပြုမှုတွင်ခက်ခဲပြီးရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ပိုမိုရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်,