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

ရရှိနိုင်သည့်စစ်ထုတ်စက်များအားလုံးကိုစာရင်းပြုစုရန် Stream_get_get_Filters ကိုသုံးပါ

gitbox 2025-05-20

PHP တွင် Stream သည်အလွန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်သောအယူအဆဖြစ်သည်။ ဖိုင်များ, network connection များ, မှတ်ဉာဏ်နှင့်အခြားအရင်းအမြစ်များကိုပင်ဖတ်ရန်စီးဆင်းမှုများကိုအသုံးပြုနိုင်သည်။ စီးဆင်းမှု၏စစ်ဆင်ရေးသည်များသောအားဖြင့်အချက်အလက်များကိုမဖတ်မီသို့မဟုတ်ရေးသားခြင်းမပြုမီအချက်အလက်များ၏ပုံစံသို့မဟုတ်အကြောင်းအရာများကိုလုပ်ဆောင်နိုင်သည့် filter များဖြင့်လိုက်ပါသွားသည်။ Stream_get_Filters function ကိုရရှိနိုင်သည့်စစ်ထုတ်စက်များကိုစာရင်းပြုစုရန်အသုံးပြုသည်။

1 ။ stream_get_filters function ကိုမိတ်ဆက်

stream_get_filters function သည် PHP ရှိ function တစ်ခုဖြစ်သည်။ Return Value သည် filter အမည်များအားလုံးပါ 0 င်သည်။ အဘယ်သူမျှမ filter ကိုမရရှိနိုင်ပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့ပါ။

function ကိုအဓိပ္ပါယ်:

 array stream_get_filters ( void )

Value ကိုပြန်သွားပါ

ဤလုပ်ဆောင်ချက်သည်ရရှိနိုင်သည့် track filter အမည်များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။ အကယ်. filter ကိုမရရှိနိုင်ပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။

2 ။ filter အားလုံးကိုစာရင်းပြုစုရန် stream_get_filters ကို သုံးပါ

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

နမူနာကုဒ်:

 <?php
// ရရှိနိုင်သည့် stream filter အားလုံးကိုစာရင်းပြုစုပါ
$filters = stream_get_filters();

// အားလုံး filter အမည်များ output
foreach ($filters as $filter) {
    echo $filter . PHP_EOL;
}
?>

ဒီကုဒ်ထဲမှာ stream_get_filters function ကိုခေါ်ပြီးရလဒ်ကို ငွေဖြည့်ပေးတဲ့ ငွေရေးကြေးရေးကိုသိမ်းထားတယ်။ ထို့နောက် Fonteach ကို filter များနှင့် output တစ်ခုလုံးမှတစ်ဆင့် filter တစ်ခုချင်းစီကိုမျက်နှာပြင်သို့ကူးယူပါ။

3 ။ စီးဆင်းမှု filter ကိုအသုံးပြုခြင်း

stream filter များကိုများသောအားဖြင့်အချက်အလက်များကိုစမ်းရေတွင်းများတွင်လုပ်ဆောင်ရန်အသုံးပြုသည်။ ဥပမာအားဖြင့်, စာသားကိုစာလုံးအသေးအဖြစ်ပြောင်းလဲရန် filter များကိုသုံးနိုင်သည်, HTML tags များကိုဖယ်ရှားနိုင်သည်။ encoding twording စသည်တို့ကိုဤနေရာတွင်ဖော်ပြရန်ဥပမာတစ်ခုမှာဤနေရာတွင်ဖော်ပြထားသည်။

ဥပမာ - convert.ICONV ကိုသုံးပါ။ စိမ့်ထွက်

UTF-8 encoded ဖိုင်ကို ISO-8859-1 သို့ encoded သို့ပြောင်းရန်လိုအပ်သည်ဆိုပါစို့။ ဤကိစ္စတွင်ကျွန်ုပ်တို့သည် convert.ICONV ကိုသုံးနိုင်သည်။ * filter ။ ဤတွင်ဤ filter ကို အသုံးပြု. နမူနာကုဒ်ဖြစ်သည်။

 <?php
// ဖိုင်စီးကိုဖွင့်ပါ
$fp = fopen('input.txt', 'r');

// Stream filter ကို သုံး. encoding ပြောင်းပါ
stream_filter_append($fp, 'convert.iconv.utf-8/ISO-8859-1');

// ဖတ်ပြီး output ဖိုင်အကြောင်းအရာ
while ($line = fgets($fp)) {
    echo $line;
}

// ဖိုင်စီးကိုပိတ်ပါ
fclose($fp);
?>

ဤဥပမာတွင် Input.txt ဟုခေါ်သောဖိုင်စီးကိုကျွန်ုပ်တို့ပထမဆုံးဖွင့်သည်။ ထို့နောက် convert.Icv.utf-8 / ISO-8859-1 filter ကို utf-8 encoding မှ ISO-8859-1 encoding သို့ပြောင်းရန် convert_filter_Append function မှတဆင့်အသုံးပြုသည်။ ထို့နောက်ကျွန်ုပ်တို့သည်လိုင်းတစ်ခုစီ၏ဖိုင်နှင့် output ကိုဖတ်သည်။

4 ။ လက်ျာ filter ကိုဘယ်လိုရွေးချယ်ရမလဲ။

မှန်ကန်သောစီးဆင်းမှု filter ကိုရွေးချယ်ခြင်းသည်သင်၏အချက်အလက်အပြောင်းအလဲအတွက်လိုအပ်ချက်အပေါ်တွင်မူတည်သည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည် HTML tags များကိုသန့်ရှင်းရေးလုပ်ရန်လိုအပ်ပါက strips_tags filter ကိုသုံးနိုင်သည်။ အကယ်. သင်သည်စာသားကို encode လုပ်ရန်လိုအပ်ပါက convert.ICOV ကိုရွေးချယ်နိုင်သည်။ * filter ။

ရရှိနိုင်သည့် filter အားလုံးကို stream_get_filters function ကိုမှတစ်ဆင့်သင်စာရင်းပြုစုနိုင်ပြီး filter ၏ function ကို အခြေခံ. သင့်လျော်သောသင့်လျော်သောသင့်တော်သည်။ အကယ်. filter တစ်ခု၏လုပ်ဆောင်ချက်နှင့် ပတ်သက်. သင်မသေချာပါကတရားဝင် PHP မှတ်တမ်းများကိုသင်လေ့လာနိုင်သည်သို့မဟုတ် filter ညွှန်ကြားချက်များကိုကြည့်ရှုနိုင်သည်။

5 ။ စီးဆင်းမှု filter များကိုမှတ်ပုံတင်ခြင်းနှင့်အသုံးပြုခြင်း

PHP တွင်ကျွန်ုပ်တို့သည် custom stream filter များကို stream_filter_register function မှတဆင့်လည်းမှတ်ပုံတင်နိုင်သည်။ ဤနည်းအားဖြင့်သင်၏ကိုယ်ပိုင်စစ်ထုတ်စက်များကို ဖန်တီး. သင်၏အချက်အလက်များကိုသင်လုပ်ဆောင်ပုံကိုအပြည့်အဝစိတ်ကြိုက်ပြုပြင်နိုင်သည်။

ဥပမာ - Custom Stream filter တစ်ခုကိုမှတ်ပုံတင်ပြီးသုံးပါ

 <?php
// စိတ်ကြိုက် filter အတန်းအစား
class MyFilter extends php_user_filter {
    public function filter($in, $out) {
        while ($bucket = stream_bucket_make_writeable($in)) {
            // ဒေတာပိတ်ပင်တားဆီးမှုတစ်ခုစီကိုအရင်းအနှီးသို့ပြောင်းပါ
            $bucket->data = strtoupper($bucket->data);
            stream_bucket_append($out, $bucket);
        }
        return PSFS_PASS_ON;
    }
}

// filter ကိုမှတ်ပုံတင်ပါ
stream_filter_register('my.uppercase', 'MyFilter');

// စိတ်ကြိုက် filter များကိုသုံးပါ
$fp = fopen('input.txt', 'r');
stream_filter_append($fp, 'my.uppercase');
while ($line = fgets($fp)) {
    echo $line;
}
fclose($fp);
?>

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် input data ကိုစာလုံးအကြီးများသို့ထည့်သွင်းထားသော Myfilter ဟုခေါ်သောစိတ်ကြိုက်ချကွက် filter တစ်ခုကိုဖန်တီးသည်။ ထို့နောက်ကျွန်ုပ်တို့သည် filter ကို stream_filter_register function မှတဆင့်မှတ်ပုံတင်ပြီးစီးနင်းမှုတွင်သုံးပါ။

အကျဉ်းချုပ်

stream_get_filters function ကိုနှင့်အတူရရှိနိုင်သည့်စစ်ထုတ်စက်များကိုအလွယ်တကူစာရင်းပြုစုနိုင်ပြီးအချက်အလက်များအရဒေတာများကိုလုပ်ဆောင်ရန်သင့်လျော်သောစစ်ထုတ်စက်များကိုရွေးချယ်နိုင်သည်။ stream files များသည်အချက်အလက်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စေရန်သာမကကုဒ်၏ဖတ်နိုင်မှုနှင့်ထိန်းသိမ်းခြင်းကိုလည်းတိုးတက်စေသည်။ flight filters အသုံးပြုခြင်းကိုကျွမ်းကျင်ခြင်းသည်ဖိုင်စီးဆင်းမှု, ကွန်ရက်စီးဆင်းမှုနှင့်အခြားအချက်အလက်များကိုထုတ်ယူခြင်းတွင်လုပ်ငန်းလည်ပတ်နေရာနှင့်ပြောင်းလွယ်ပြင်လွယ်များကိုပိုမိုလွယ်ကူစေသည်။