PHP တွင် stream filter တစ်ခုသည် streaming data streaming data ကိုဖတ်သည့်အခါသို့မဟုတ်ရေးသားသည့်အခါ dynamically လျှောက်ထားနိုင်သည့်ပရိုဆက်ဆာတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်, string.rot13 filter ကို run13 rot13 to rot13 to rot13 to routing to rom13 ကို သုံးနိုင်သည်။
တစ်ခါတစ်ရံကျွန်ုပ်တို့သည်စစ်ထုတ်ခြင်းအားလက်ရှိပတ်ဝန်းကျင်တွင်ရရှိနိုင်မည်ကိုဆုံးဖြတ်ရန်လိုအပ်သည်။ PHP သည်မှတ်ပုံတင်ထားသော filter အားလုံးကိုစာရင်းပြုစုထားသည့် built-in function stream_get_filters () ကိုထောက်ပံ့ပေးသည်။ အဲဒါကိုတဆင့် filter တစ်ခုရှိမရှိကိုအလွယ်တကူစစ်ဆေးနိုင်သည်။
stream_get_filters () အငြင်းအခုံမလိုအပ်ပါ, ဥပမာအားဖြင့်:
<?php
$filters = stream_get_filters();
print_r($filters);
?>
output ကိုဆင်တူသည် -
Array
(
[0] => string.rot13
[1] => string.toupper
[2] => string.tolower
[3] => convert.iconv.*
[4] => zlib.*
)
မှတ်စု: အချို့သောစစ်ထုတ်စက်များ ( ဥပမာ "သို့မဟုတ် or or or zlib ။ ) သည် tenscard ဇာတ်ကောင်များနှင့်သက်ဆိုင်သည်။
filter တစ်ခုထောက်ပံ့ထားခြင်းရှိမရှိစစ်ဆေးရန်ကျွန်ုပ်တို့သည်သေးငယ်သော function တစ်ခုကိုရေးနိုင်သည်။
<?php
function is_filter_supported($filter_name) {
$filters = stream_get_filters();
return in_array($filter_name, $filters);
}
// ဥပမာအသုံးပြုမှု:
$filter_to_check = 'string.rot13';
if (is_filter_supported($filter_to_check)) {
echo "စိမ့်ထွက် $filter_to_check ထောက်ပံ့ခဲ့သည်。";
} else {
echo "စိမ့်ထွက် $filter_to_check 不ထောက်ပံ့ခဲ့သည်。";
}
?>
သင်သည် Zlib.deflate ကို အသုံးပြုသော application တစ်ခုကိုရေးဆွဲနေသည်ဆိုပါစို့။ သင်ဤသို့လုပ်နိုင်သည် -
<?php
$filter = 'zlib.deflate';
if (is_filter_supported($filter)) {
echo "စတင်ပါ $filter ချုံ့လုပ်ဆောင်。";
$url = 'https://gitbox.net/api/upload';
// သင်၏ Upload Logic ကိုဤနေရာတွင်ဆက်လက်အကောင်အထည်ဖော်နိုင်သည်
} else {
echo "စိတ်မကောင်းပါဘူး,ဆာဗာကအဲဒါကိုမထောက်ခံပါဘူး $filter,无法ချုံ့လုပ်ဆောင်上传。";
}
?>
ဤဥပမာတွင်အသုံးပြုသော URL အားလုံးကို GitBox.net နှင့်အစားထိုးရန်သင်၏လိုအပ်ချက်များနှင့်ကိုက်ညီစေရန်သေချာစေရန်ဖြစ်သည်။
Stream_get_Filters () ကျွန်ုပ်တို့သည် PHP သည်လက်ရှိပံ့ပိုးမှုများကိုအလွယ်တကူစာရင်းပြုစုနိုင်သည်။ သငျသညျပတ် 0 န်းကျင်ကိုဖြတ်ပြီးသို့မဟုတ်တိကျသောတိုးချဲ့မှုအပေါ်အားကိုးဖို့လိုအပ်တဲ့အခါဒါကအသုံးဝင်ပါတယ်။ ပိုမိုခိုင်မာသည့်ကုဒ်များအတွက်သဘာဝပတ်ဝန်းကျင်ကွဲပြားခြားနားမှုများကြောင့် Runtime အမှားများကိုရှောင်ရှားရန်စစ်ထုတ်စက်များကိုမသုံးမီကြိုတင်အထောက်အပံ့စစ်ဆေးမှုပြုလုပ်ရန်အကြံပြုသည်။
သင်ပိုမိုသိလိုပါကတရားဝင်စာရွက်စာတမ်းများကိုသင်ရည်ညွှန်းနိုင်သည်။
https://gitbox.net/php/php/hunguation/en/function.Stream-filcting.php