PHP တွင် stream_get_filters function ကိုလက်ရှိရရှိနိုင်သည့် stream filter များကိုရရှိရန်အသုံးပြုသည်။ ဖိုင်များသို့မဟုတ် http streams များတွင် stream filter များသည်အဓိကအခန်းကဏ် play မှပါ 0 င်သည်။ ၎င်းတို့သည်အချက်အလက်များကို comppress, encrypt, contracting encoding နှင့် data များကိုပြောင်းလဲနိုင်သည်။ ဤဆောင်းပါးသည် HTTP Streams များကိုကိုင်တွယ်သောအခါ stream_get_filters function ကိုမည်သို့ထိရောက်စွာအသုံးပြုရမည်ကိုလေ့လာလိမ့်မည်။
Stream filter တစ်ခုသည် PHP ယန္တရားတစ်ခုဖြစ်သည်။ ၎င်းတို့ကိုများသောအားဖြင့်ဖိုင်ရေးဆွဲခြင်း, ကွန်ယက်တောင်းဆိုမှုများစသည်ဖြင့်အသုံးပြုလေ့ရှိသည်။ စီးဆင်းမှု filter မှတစ်ဆင့်စီးဆင်းမှုအချက်အလက်များကိုပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်တိုးမြှင့်နိုင်သည်။ ဥပမာအားဖြင့် HTTP တုံ့ပြန်မှုကို ZLIB Stream filter ကိုအသုံးပြုပြီးချုံ့နိုင်သည်။ သို့မဟုတ် string.rot13 stream filter ကို သုံး. ဒေတာများကိုစာဝှက်ပြီးစာဝှက်ထားနိုင်သည်။
Stream_get_Filters သည် Built-in PHP function ကိုပါ 0 င်သည်။ Stream Operations များတွင်အသုံးပြုနိုင်သည့် filter name အားလုံးပါ 0 င်သည့် array တစ်ခုသို့ပြန်ပို့သည်။ အမှန်တကယ်ဒေတာအပြောင်းအလဲအတွက်, stream_filter_filter_proilter_proilter_proilter_proilter_preme စ သည့် function များကိုဤစစ်ထုတ်စက်များတွင်အသုံးပြုနိုင်သည်။
array stream_get_filters ( void )
ပြန်လာတန်ဖိုး - ရရှိနိုင်သည့် filter အမည်များအားလုံးပါ 0 င်သည့် array ။
HTTP streams များနှင့်ဆက်ဆံရာတွင် Stream_get_Filters သည် မည်သည့်စစ်ထုတ်စက်များကိုစီးနင်းနိုင်သည့်ထုတ်စက်များနှင့်သက်ဆိုင်သော, ဥပမာ HTTP protocol ကိုကျော်ဝေးလံခေါင်သီသောအချက်အလက်များကိုရယူသည့်အခါတုံ့ပြန်မှုအကြောင်းအရာများကိုချုံ့ရန် stream filter များကိုသုံးနိုင်သည်။
HTTP streams များကိုကိုင်တွယ်ရာတွင်မှန်ကန်သော filter ကိုရွေးချယ်ရန်လက်ရှိတွင်ရရှိနိုင်သည့် stream filters များကို ဦး စွာလေ့လာနိုင်သည်။
// ရရှိနိုင်သည့် stream filter အားလုံးကိုရယူပါ
$filters = stream_get_filters();
// output ကိုရရှိနိုင်သည့် filter များ
echo "ရရှိနိုင်သည့်စီးဆင်းမှု filter များ: \n";
print_r($filters);
HTTP တောင်းဆိုမှုများတွင်ကျွန်ုပ်တို့သည်ဝေးလံခေါင်သီသောဆာဗာများမှအချက်အလက်များကိုမကြာခဏလုပ်ဆောင်ရန်လိုအပ်သည်။ ယခုအချိန်တွင်ကျွန်ုပ်တို့သည်သင့်တော်သော filter တစ်ခုရှိ, မရှိကိုစစ်ဆေးရန်အတွက် stream_get_filters ကို သုံးနိုင်သည်။ ထို့နောက်ပြန်လာသောအချက်အလက်များကိုမည်သို့လုပ်ဆောင်ရမည်ကိုဆုံးဖြတ်ရန်ကျွန်ုပ်တို့ကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် HTML အကြောင်းအရာများကိုပြန်လည်နေရာချထားနိုင်သည်။
ကျွန်ုပ်တို့သည် HTTP Stream အပေါ် compressed တုန့်ပြန်မှုရရန်လိုအပ်သည်ဆိုပါစို့။ ဤအောင်မြင်ရန် Zlib.inflate filter ကိုကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
// တည်ဆောက်သည်URLနှင့်ရွေးချယ်စရာများ
$url = "https://gitbox.net/some-endpoint";
$options = [
"http" => [
"method" => "GET",
"header" => "Accept-Encoding: gzip"
]
];
$context = stream_context_create($options);
// ဖွင့်လှစ်HTTPစီးဆင်း
$stream = fopen($url, "r", false, $context);
// ရရှိနိုင်သည့်စစ်ထုတ်ကိရိယာများကိုစစ်ဆေးပါ
$filters = stream_get_filters();
if (in_array('zlib.inflate', $filters)) {
// ထောက်ပံ့လျှင်zlib.inflateစိမ့်ထွက်,ထို့နောက် decompress မှလျှောက်ထားပါHTTPတုံ့ပြန်ချက်
stream_filter_append($stream, 'zlib.inflate');
}
// 读取和输出တုံ့ပြန်ချက်
$response = stream_get_contents($stream);
echo $response;
// 关闭စီးဆင်း
fclose($stream);
ဤဥပမာတွင် Zlib.inflate filter ကိုပံ့ပိုးပေးမကန်ကို ဦး စွာစစ်ဆေးပါ။
Zlib.inflate : HTTP protocol မှတဆင့် compressed ဒေတာကို decompress လုပ်ထားသည်။
string.rot.rot.rot.rot13 : ဒေတာ၏ရိုးရှင်းသောစာဝှက်စနစ်သို့မဟုတ်စာဝှက်ဖြည်။
convert.ICONV
stream_get_filters function ကိုမှတစ်ဆင့်လက်ရှိ PHP ပတ်ဝန်းကျင်တွင်ထောက်ပံ့ထားသော stream များကိုကြည့်ရှုနိုင်သည်။ ၎င်းသည် HTTP Streams များကိုကိုင်တွယ်သောအခါ၎င်းသည်ရရှိနိုင်သည့်စစ်ထုတ်စက်များကိုနားလည်ရန်နှင့်ကွန်ယက်တောင်းဆိုမှုများကိုပိုမိုကောင်းမွန်အောင်လုပ်ရန်လိုအပ်သည့်အတွက်မှန်ကန်သောစစ်ထုတ်စက်များကိုရွေးချယ်ရန်အတွက်အထူးသဖြင့်အရေးကြီးသည်။ Stream_get_Filters များ အသုံးပြုခြင်းဖြင့် HTTP stream များကိုဖွံ့ဖြိုးတိုးတက်စဉ်ကာလအတွင်းပိုမိုထိရောက်စွာကိုင်တွယ်နိုင်ပြီးသင်၏လျှောက်လွှာ၏လုပ်ဆောင်မှုနှင့်စွမ်းဆောင်ရည်ကိုပိုမိုထိရောက်စွာကိုင်တွယ်နိုင်သည်။