လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> filter_var_array နှင့်စိတ်ကြိုက် filter များနှင့်အတူသန့်ရှင်းရေးဒေတာ

filter_var_array နှင့်စိတ်ကြိုက် filter များနှင့်အတူသန့်ရှင်းရေးဒေတာ

gitbox 2025-05-29

PHP တွင်ဒေတာစီစစ်ခြင်းနှင့်စစ်ဆေးခြင်းသည်လျှောက်လွှာလုံခြုံရေးနှင့်တည်ငြိမ်မှုကိုသေချာစေရန်အဓိကချိတ်ဆက်မှုများဖြစ်သည်။ PHP သည် filter_var_array သည် Multidimensional Array အချက်အလက်များကိုလုပ်ဆောင်ရန်အတွက်အလွန်လက်တွေ့ကျတဲ့ကိရိယာတစ်ခုဖြစ်သည့်အစွမ်းထက်သော filter function များကိုထောက်ပံ့ပေးသည်။ ၎င်းသည် built-in filters အမျိုးမျိုးကိုထောက်ပံ့ရုံသာမကပိုမိုတိကျပြီးရှုပ်ထွေးသော data filtering အောင်မြင်ရန်စိတ်ကြိုက် filtering function များကိုပေါင်းစပ်ရန်လည်းခွင့်ပြုသည်။

ရှုပ်ထွေးသောအချက်အလက်များကိုထိရောက်စွာစီစစ်ရန်အတွက် Filter_Var_arrray ကို custom filter များနှင့်ပေါင်းစပ်ပြီးမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။


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

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 ကို ပြန်ပေးလိမ့်မည်။


2 ။ စိတ်ကြိုက် filter များကိုသုံးပါ

ပါ 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);

3 ။ ရှုပ်ထွေးသောဥပမာ filter_var_Arlarray ကိုစိတ်ကြိုက် filter များဖြင့်ပေါင်းစပ်ခြင်း

အောက်ပါအချက်အလက်များတည်ဆောက်ခြင်းသည်အောက်ပါ 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);
}

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

  • Filter_var_array သည်အသုတ် data filtering processing အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။

  • Built-in filter များသည်ပုံမှန်အချက်အလက်အမျိုးအစားများအတွက်သင့်တော်သည်။

  • Filter_CallBack သည် ရှုပ်ထွေးသောစည်းမျဉ်းစည်းကမ်းများကိုတိကျသောစိစစ်အတည်ပြုအောင်မြင်ရန် Custom functions များနှင့်ပေါင်းစပ်နိုင်သည်။

  • URL အတည်ပြုချက်နှင့်ပေါင်းစပ်သောအခါဒိုမိန်းအမည်အပိုင်းကို Parse_Url အသုံးပြု. filtered ကိုစိတ်ကြိုက်ပြုပြင်နိုင်သည်။

ဤနည်းစနစ်များကိုကျွမ်းကျင်စေခြင်းသည်ရှုပ်ထွေးသောအသုံးပြုသူထည့်သွင်းမှုအချက်အလက်များကိုလက်ခံရရှိသည့်အခါ PHP application များ၏လုံခြုံရေးနှင့်တိကျမှန်ကန်မှုကိုများစွာတိုးတက်စေနိုင်သည်။