လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> filter_var_array ကိုအသုံးပြုပြီးအမှားတစ်ခုဖြစ်ပွားခဲ့သလား။ မကြာခဏမေးလေ့ရှိသောမေးခွန်းများနှင့်အသေးစိတ်ဖြေရှင်းချက်များ၏အကျဉ်းချုပ်

filter_var_array ကိုအသုံးပြုပြီးအမှားတစ်ခုဖြစ်ပွားခဲ့သလား။ မကြာခဏမေးလေ့ရှိသောမေးခွန်းများနှင့်အသေးစိတ်ဖြေရှင်းချက်များ၏အကျဉ်းချုပ်

gitbox 2025-06-15

PHP တွင် filter_var_array သည် filters filtering filtering နှင့် validing data များကိုအားဖြည့်ရန်အတွက်အလွန်လက်တွေ့ကျတဲ့လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းသည်တစ်ချိန်တည်းတွင် variable မျိုးစုံကိုတစ်ချိန်တည်းတွင်လုပ်ဆောင်နိုင်ပြီးဒေတာစိစစ်ရေးကိုများစွာလွယ်ကူချောမွေ့စေသည့် variable တစ်ခုချင်းစီအတွက် filtering စည်းမျဉ်းများကိုသတ်မှတ်နိုင်သည်။ သို့သော်အမှန်တကယ်အသုံးပြုစဉ်အတွင်း developer များစွာသည်ပုံမှန်အားဖြင့်ပုံမှန်မဟုတ်သောအမှားများကိုတွေ့ကြုံခဲ့ရသည်။ ဤဆောင်းပါးသည် filter_var_array အသုံးပြုခြင်းတွင်ဘုံပြ problems နာများကိုအနှစ်ချုပ်များကိုအကျဉ်းချုံးပြ problems နာများကိုအတိုချုပ်ဖော်ပြပြီး၎င်းတို့အားလျင်မြန်စွာဖြေရှင်းရန်နှင့်ဖြေရှင်းရန်ကူညီရန်အသေးစိတ်ဖြေရှင်းနည်းများကိုပေးလိမ့်မည်။


1 ။ Super_var_array ကိုမိတ်ဆက်ပါ

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 သည် မှန်ကန် သည်


2 ။ မကြာခဏမေးခွန်းများနှင့်ဖြေရှင်းနည်းများမကြာခဏမေးတယ်

1 ။ 0 င်ရောက်လာသည့်စည်းမျဉ်းပုံစံသည်မမှန်ကန်ပါ

ပြနာဖော်ပြချက် <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);

2 ။ ဖိစီစစ်ရေးစည်းမျဉ်းပျောက်ဆုံးနေသည့်အခါတိစစ်ထုတ်ခြင်း

ပြနာဖော်ပြချက် <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 သည်ကျရှုံးလိမ့်မည်။


3 ။ ပြန်လာတန်ဖိုးကိုအတွက် မှားယွင်းသော သို့မဟုတ် null မလုပ်ဆောင်ပါ

ပြနာဖော်ပြချက်
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 "အီးမေးလ်အတည်ပြု";
    }
}

4 ။ URL များကိုစစ်သည့်အခါ URL ၏ဒိုမိန်းအမည်ကိုအစားထိုးရန်လိုအပ်သည်

တခါတရံဆောင်းပါးများသို့မဟုတ်မှတ်တမ်းများတွင်သီးသန့်တည်ရှိမှုသို့မဟုတ်စည်းလုံးမှုစီမံခန့်ခွဲမှုအတွက် 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

3 ။ ဥပမာ - ပြည့်စုံသောလျှောက်လွှာ

 $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
)

4 ။ အကျဉ်းချုပ်

  • filter_var_array ကိုအသုံးပြုပြီးသောအခါမှန်ကန်သော filter rule format ကိုမှန်ကန်စွာစစ်ဆေးပါ။

  • စည်းမျဉ်းများကိုစစ်စည်းမျဉ်းများကိုရွေးချယ်ရန်လိုအပ်သည့်အခါသင် ရွေးချယ်မှု ခင်းကျင်းမှုများကိုရှင်းရှင်းလင်းလင်းရေးရမည်။

  • အတည်ပြုခြင်းပျက်ကွက်မှုကြောင့်အစီအစဉ်ခြွင်းချက်များကိုကာကွယ်ရန်ပြန်လာသောရလဒ်များကိုကျိုးကြောင်းဆီလျော်စွာစီရင်ချက်ချပါ။

  • URL ပြုပြင်ထုတ်လုပ်မှုနှင့်ပတ်သက်လာလျှင်ဒိုမိန်းအမည်အစားထိုးခြင်းကိုလွယ်ကူစွာ အစားထိုး ခြင်းနှင့်အတူပေါင်းစပ်ပါ။

ဤဆောင်းပါးသည် filter_var_array အသုံးပြုမှုတွင်ခက်ခဲပြီးရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်နှင့်ပိုမိုရှုပ်ထွေးသောပြ problems နာများကိုဖြေရှင်းရန်,