PHP တွင် stream processing သည်အထူးသဖြင့်အချက်အလက်အမြောက်အများကိုပြုပြင်သောအခါ streaming streaming streaming လုပ်ငန်းများသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။ Stream filter များသည်အချက်အလက်များကိုထုတ်ယူရန်အတွက်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်ပြီးစာဖတ်ခြင်းနှင့်ရေးသားခြင်းအတွက်အချက်အလက်များကိုအချိန်မှန်အတွက်အချက်အလက်များကိုလုပ်ဆောင်နိုင်သည်။ PHP သည် stream filter များကိုစီမံရန်လုပ်ဆောင်ချက်အချို့ကိုထောက်ပံ့ပေးသည်။ အသုံးအများဆုံးလုပ်ဆောင်ချက်တစ်ခုမှာအသုံးပြုသောလုပ်ဆောင်ချက်တစ်ခုမှာ stream_get_filters များ ဖြစ်သည်။
ဤဆောင်းပါးတွင် stream_get_filters နှင့် stream_filtter_proilter_proilter_proilter_proilter_proilter_prust ကိုပေါင်းစပ်ရန်အတိမ်အနက်ကိုလေ့လာပါမည်။
Stream filter များသည်ဒေတာ streaming စဉ်အတွင်းအချက်အလက်များကိုလုပ်ဆောင်ရန်အသုံးပြုသောယန္တရားများဖြစ်သည်။ PHP သည် stream_filter_append နှင့် stream_filter_preilter_preilter_prust မှတဆင့်စီးဆင်းရန်စစ်ထုတ်စက်များကိုသက်ဆိုင်သည်။ ဒေတာများမှအချက်အလက်များကိုဖတ်ရှုခြင်း (သို့) စာဖြင့်ရေးသားထားသောသို့မဟုတ်စာဝှက်ရန်မကြာခဏအသုံးပြုသောအခါဤစစ်ထုတ်စက်များကိုပြုလုပ်နိုင်ပြီးအချက်အလက်များအပေါ်စာဝှက်ခြင်း, စာဝှက်ခြင်း,
steam_filter_append : စမ်းချောင်း၏အဆုံးသို့ filter ကိုဖြည့်ပါ။
steam_filter_prece : စမ်းချောင်း၏အစကို filter တစ်ခုထည့်ပါ။
ဤလုပ်ဆောင်ချက်နှစ်ခုအကြားအဓိကကွာခြားချက်မှာ filter ၏ကွပ်မျက်မှုအမိန့်ဖြစ်သည်။ Prepend ကို ပထမ ဦး ဆုံးကွပ်မျက်ခံရလိမ့်မည် ။
stream_get_filters function ရဲ့ function က function ကလက်ရှိရရှိနိုင်သည့်စစ်ထုတ်စက်များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်ပေးရန်ဖြစ်သည်။ ၎င်းသည်စီးဆင်းမှုကိုတိုက်ရိုက်မကိုင်တွယ်နိုင်သော်လည်းကျွန်ုပ်တို့အားမည်သည့်စစ်ထုတ်ကိရိယာများရရှိနိုင်ကြောင်းစိတ်ကူးတစ်ခုပေးသည်။ ARRAY AT REVATS တွင် PHP ၏ built-in filter များနှင့် stream_filter_register မှတစ်ဆင့်မှတ်ပုံတင်ထားသော custom filter များပါဝင်သည်။
ဥပမာအားဖြင့်, ရရှိနိုင်သည့် stream filter များကိုစာရင်းပြုစုရန်အောက်ပါကုဒ်ကိုသုံးပါ။
$filters = stream_get_filters();
print_r($filters);
Stream_filter_Prophe Process နှင့်အတူကျွန်ုပ်တို့သည်ပထမ ဦး ဆုံးဒေတာစီးဆင်းမှုအတွက်အချို့သောအပြောင်းအလဲနဲ့လျှောက်ထားနိုင်ပါတယ်။ ၎င်းသည် ဦး စားပေးအပြောင်းအလဲများကိုလိုအပ်သောစမ်းချောင်းများအတွက်အလွန်အသုံးဝင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည်ဖိုင်အကြောင်းအရာများမဖတ်မီစာဝှက်ဖြည်ရန်လိုပါကကျွန်ုပ်တို့ဖတ်ရှုတိုင်းဒေတာစာဝှက်ဖြည်ခြင်းလုပ်ငန်းစဉ်ကိုဖြတ်သန်းသွားမည်ဖြစ်ရာစီးပွါးရေး filter ကို filter filter တစ်ခုထည့်သင့်သည်။
နမူနာကုဒ်:
$fp = fopen('http://gitbox.net/somefile', 'r');
// ပထမ ဦး ဆုံး decryption filter ကိုစီး၏ရှေ့မှောက်၌ထည့်ပါ
stream_filter_prepend($fp, 'mdecrypt.des', STREAM_FILTER_READ, ['iv' => '1234567890abcdef']);
// အကြောင်းအရာကိုစမ်းကြည့်ပါ
while ($data = fread($fp, 1024)) {
echo $data;
}
fclose($fp);
အထက်ဖော်ပြပါကုဒ်များတွင်စာဝှက်ဖြည်သည့် filter mdecrypt ကို Stream_Filter_PREUTY မှတဆင့် MDECST.DES သို့ထည့်သည်။ ဒေတာများကိုဖတ်သည့်အခါတိုင်း၎င်းသည်စာဝှက်ဖြည်ခြင်းလုပ်ငန်းစဉ်ကို ဦး စွာဖြတ်သန်းသွားလိမ့်မည်။ ဤနည်းလမ်းသည်ဒေတာလုပ်ဆောင်မှုကိုပိုမိုထိရောက်စေသည်။ အကြောင်းမှာ decryption လည်ပတ်ခြင်းမပြုမီစာဝှက်ဖြည်ခြင်းလုပ်ငန်းကိုလုပ်ဆောင်သည်။
အကြောင်းအရာကို HTTP တောင်းဆိုမှုများမှတစ်ဆင့်ရရှိသောအရာရှိသည်ဆိုပါစို့။ stream_get_filters နှင့် stream_filter_preilte ကို ပေါင်းစပ်ခြင်းဖြင့်ဒေတာစီးဆင်းမှုများကိုပိုမိုထိရောက်စွာလုပ်ဆောင်နိုင်သည်။
// တစ် ဦး ဖွင့်လှစ်HTTPစီးဆင်း
$fp = fopen('http://gitbox.net/largefile', 'r');
// ရရှိနိုင်သည့် filter အားလုံးကိုကြည့်ပါ
$filters = stream_get_filters();
print_r($filters); // အားလုံး filter များ output
// 将压缩过滤器添加到စီးဆင်း的前面
stream_filter_prepend($fp, 'zlib.deflate', STREAM_FILTER_READ);
// compressed ဒေတာကိုဖတ်ပါ
while ($data = fread($fp, 1024)) {
echo $data;
}
fclose($fp);
ဤဥပမာတွင် stream_filter_prece ပေါ်လှောင်ရုံကို zlib.deflate compression filter ကိုစီး၏ရှေ့မှောက်၌ထည့်သွင်းပါ။ streaming ကိုဖတ်သည့်အခါအချက်အလက်များသည်မှတ်ဥာဏ်သုံးစွဲမှုနှင့်အချိန်ကုန်သက်သာစေရန်အတွက်အချက်အလက်များကိုတိုက်ရိုက်ချုံ့သည်။
stream_get_filters နှင့် stream_filter_prec_proilter_precs မှာ ဒေတာစီးဆင်းမှုကိုကိုင်တွယ်တဲ့အခါ PHP မှာအလွန်အစွမ်းထက်တဲ့ကိရိယာများရှိတယ်။ stream_get_filters နှင့်အတူကျွန်ုပ်တို့သည်လက်ရှိရရှိနိုင်သည့် stream filters အားလုံးကိုကြည့်ရှုနိုင်သည်။ Stream_filter_Prophe Process နှင့်အတူနေစဉ်အချက်အလက်များပြုပြင်သည့်အခါပိုမိုထိရောက်သောလုပ်ငန်းဆောင်တာများကိုစီးဆင်းစေသည့်လုပ်ငန်းများကိုဖြည့်ဆည်းပေးနိုင်သည်။ ဤကိရိယာများကိုကောင်းစွာအသုံးပြုခြင်းသည်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေပြီးကြီးမားသောဒေတာစီးဆင်းမှုများနှင့်ဆက်ဆံရာတွင်မှတ်ဥာဏ်အသုံးပြုမှုကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။
၎င်းသည်စာဝှက်ဖြည်ခြင်း, ချုံ့ခြင်း, ချုံ့ခြင်းသို့မဟုတ်အခြားဒေတာများပြုပြင်ခြင်းလုပ်ငန်းများ,