PHP တွင် Stream သည်အလွန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်သောအယူအဆဖြစ်သည်။ ဖိုင်များ, network connection များ, မှတ်ဉာဏ်နှင့်အခြားအရင်းအမြစ်များကိုပင်ဖတ်ရန်စီးဆင်းမှုများကိုအသုံးပြုနိုင်သည်။ စီးဆင်းမှု၏စစ်ဆင်ရေးသည်များသောအားဖြင့်အချက်အလက်များကိုမဖတ်မီသို့မဟုတ်ရေးသားခြင်းမပြုမီအချက်အလက်များ၏ပုံစံသို့မဟုတ်အကြောင်းအရာများကိုလုပ်ဆောင်နိုင်သည့် filter များဖြင့်လိုက်ပါသွားသည်။ 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 ကိုမရရှိနိုင်ပါကအချည်းနှီးသောခင်းကျင်းမှုကိုပြန်ပို့သည်။
ရရှိနိုင်သည့်စစ်ထုတ်ကိရိယာများအားလုံးကိုစာရင်းပြုစုရန်ကျွန်ုပ်တို့သည် 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 တစ်ခုချင်းစီကိုမျက်နှာပြင်သို့ကူးယူပါ။
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 ကိုဖတ်သည်။
မှန်ကန်သောစီးဆင်းမှု filter ကိုရွေးချယ်ခြင်းသည်သင်၏အချက်အလက်အပြောင်းအလဲအတွက်လိုအပ်ချက်အပေါ်တွင်မူတည်သည်။ ဥပမာအားဖြင့်, အကယ်. သင်သည် HTML tags များကိုသန့်ရှင်းရေးလုပ်ရန်လိုအပ်ပါက strips_tags filter ကိုသုံးနိုင်သည်။ အကယ်. သင်သည်စာသားကို encode လုပ်ရန်လိုအပ်ပါက convert.ICOV ကိုရွေးချယ်နိုင်သည်။ * filter ။
ရရှိနိုင်သည့် filter အားလုံးကို stream_get_filters function ကိုမှတစ်ဆင့်သင်စာရင်းပြုစုနိုင်ပြီး filter ၏ function ကို အခြေခံ. သင့်လျော်သောသင့်လျော်သောသင့်တော်သည်။ အကယ်. filter တစ်ခု၏လုပ်ဆောင်ချက်နှင့် ပတ်သက်. သင်မသေချာပါကတရားဝင် PHP မှတ်တမ်းများကိုသင်လေ့လာနိုင်သည်သို့မဟုတ် 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 အသုံးပြုခြင်းကိုကျွမ်းကျင်ခြင်းသည်ဖိုင်စီးဆင်းမှု, ကွန်ရက်စီးဆင်းမှုနှင့်အခြားအချက်အလက်များကိုထုတ်ယူခြင်းတွင်လုပ်ငန်းလည်ပတ်နေရာနှင့်ပြောင်းလွယ်ပြင်လွယ်များကိုပိုမိုလွယ်ကူစေသည်။