PHP တွင် Stream သည်ဖိုင်ပြုပြင်ခြင်း, ကွန်ယက်ဆက်သွယ်ရေးနှင့်အခြားနယ်ပယ်များတွင်ကျယ်ပြန့်စွာအသုံးပြုသောအရေးကြီးသောအချက်အလက်ပြုပြင်ခြင်းယန္တရားတစ်ခုဖြစ်သည်။ Stream filter သည် PHP stream ၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး encoding ပြောင်းလဲခြင်း, compression နှင့်အခြားလုပ်ငန်းများကဲ့သို့သောအချက်အလက်များကိုမလွှင့်မီအချက်အလက်များကိုကြိုတင်မသုံးမီအသုံးပြုသည်။ stream_get_filters နှင့် stream_get_meta_DA_DATA သည် developer များနှင့် stream filter များ၏အခြေအနေကိုရှုမြင်ရန်နှင့်စီမံခန့်ခွဲသောအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်စီးဆင်းမှု filter များလျှောက်လွှာကိုစစ်ဆေးရန်ဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Stream filter တစ်ခုသည်စီးဆင်းမှုကို ဖြတ်. မသွားမီစမ်းချောင်းထဲရှိအချက်အလက်များကိုချုံ့ထားသည့်ယန္တရားတစ်ခုဖြစ်သည်။ PHP သည်ဒေတာချုံ့ခြင်း, ဇာတ်ကောင် encoding ပြောင်းလဲခြင်း, ဒေတာ encryption များစသဖြင့်ထုတ်လုပ်ထားသော stream filters အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။
stream_get_filters function ကိုရရှိနိုင်သည့် stream filter များအားလုံးကိုပြန်ပို့ရန်အသုံးပြုသည်။ လက်ရှိ PHP ပတ် 0 န်းကျင်တွင်မည်သည့် stream များကိုမည်သည့် stream များကိုအသုံးပြုနိုင်သော developer များကိုနားလည်ရန်ကူညီနိုင်သည်။ ဤတွင်ဤလုပ်ဆောင်မှု၏ရိုးရှင်းသောအသုံးပြုမှုတစ်ခုဖြစ်သည်။
$filters = stream_get_filters();
print_r($filters);
ဤကုဒ်သည်လက်ရှိရရှိနိုင်သည့် filters များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုထုတ်ပေးသည်။ ပြန်လာသောရလဒ်မှာလည်းဆင်တူသည် -
Array
(
[0] => zlib.inflate
[1] => zlib.deflate
[2] => string.rot13
[3] => convert.iconv.*
)
stream_get_meta_data function ကိုစီးနှင့်ဆက်စပ်သော Metadata ရရှိရန်အသုံးပြုသည်။ Metadata တွင်စီးဆင်းမှုအမျိုးအစားနှင့်စီးဆင်းနေသောအခြားဝိသေသလက္ခဏာများပါ 0 င်သည့်စီးဆင်းမှုအမျိုးအစားအပါအ 0 င်စီးဆင်းမှု၏အခြေအနေသတင်းအချက်အလက်များပါ 0 င်သည်။ ဒီ function ကိုသုံးနိုင်ပါတယ်။
stream_get_meta_data ကိုအသုံးပြုပြီးစီးကြောင်းတစ်ခုရဲ့ metadata ကိုဘယ်လိုကြည့်ရှုနိုင်မလဲဆိုတာအတွက်နမူနာကုဒ်ပါ။
<?php
$stream = fopen('https://gitbox.net/somefile.txt', 'r');
$metaData = stream_get_meta_data($stream);
print_r($metaData);
fclose($stream);
?>
ကျွန်ုပ်တို့သည်စီးဆင်းမှုတစ်ခု၏ filter status ကိုကြည့်ရှုရန် stream_get_filters နှင့် stream_get_meta_data ကို သုံးနိုင်သည်။ ဥပမာအားဖြင့်, ကျွန်ုပ်တို့သည်အဝေးမှ URL ကိုဖွင့်ပြီး filter တစ်ခုပြုလုပ်ပါကစီးကြောင်းတွင် filter တစ်ခုပါ 0 င်ပြီး filter မည်သို့အလုပ်လုပ်သည်ကိုစစ်ဆေးနိုင်သည်။
ဤတွင်ဖိုင်စီးကိုဖွင့်သောအခါချထားသည့်အချိန်သတ်မှတ်ထားသည့်သတ်သတ်မှတ်မှတ် filter တစ်ခုရှိမရှိစစ်ဆေးရန်မည်သို့စစ်ဆေးသည်။
<?php
// ရရှိနိုင်သည့် stream filter အားလုံးကိုရယူပါ
$filters = stream_get_filters();
// ပွင့်လင်း RemoteURLနှင့် filter များလျှောက်ထားပါ
$context = stream_context_create([
'http' => [
'header' => 'User-Agent: PHP'
]
]);
$stream = fopen('https://gitbox.net/somefile.txt', 'r', false, $context);
// အဆိုပါစီး၏ metadata ရယူပါ
$metaData = stream_get_meta_data($stream);
// output ကိုစီး၏ metadata
print_r($metaData);
// တိကျတဲ့ filter ကိုစီးရန်လျှောက်ထားလျှင်စစ်ဆေးပါ
if (in_array('convert.iconv.*', $filters)) {
echo "ဒီစီးဆင်းမှုဇာတ်ကောင် encoding changing filter ကိုထောက်ပံ့သည်。\n";
} else {
echo "ဤစီးသည်ဇာတ်ကောင် encoding ပြောင်းလဲခြင်း filter ကိုမထောက်ပံ့ပါ。\n";
}
// စီးကိုပိတ်ပါ
fclose($stream);
?>
လက်ရှိ PHP ပတ် 0 န်းကျင်မှပံ့ပိုးသော stream form များကိုရယူရန် Filter_Get_Filters ကို ပထမ ဦး စွာအသုံးပြုပါ။
Stream ကိုဖွင့်ပါ - fopen function မှတဆင့်ဝေးလံခေါင်သီသော URL stream ကိုဖွင့်ပါ။ ဤနေရာတွင်ကျွန်ုပ်တို့သည် Strea ၏တောင်းဆိုမှုနည်းလမ်းသည်အမှန်တကယ် application နှင့်အညီပိုမိုနီးကပ်စေရန်တောင်းဆိုမှုခေါင်းစဉ်ကိုဖန်တီးရန် HTTP အခြေအနေကိုအသုံးပြုသည်။
Metadata : stream_get_meta_data function ကိုသုံးပြီး stream ၏ metadata ကိုရယူရန်နှင့် စစ်ထုတ်စက်များ ပါ 0 င်သည်ကိုကြည့်ရှုရန် filter များကိုစစ်ဆေးပါ။
Child Filter ကိုစစ်ဆေးပါ ။ Stream သည် convert.IcV အမျိုးအစားကဲ့သို့သောတိကျသောစစ်ထုတ်စက်များကိုထောက်ပံ့သည်ကိုစစ်ဆေးပါ။ * In_Array function မှတဆင့်။
Close Stream : နောက်ဆုံးအနေနဲ့ stream အရင်းအမြစ်ကိုပိတ်ဖို့ fcose ကို ခေါ်ပါ။
stream_get_filters နှင့် stream_get_meta_data functions များကိုပေါင်းစပ်ခြင်းအားဖြင့် PHP developer များသည် stream filters များ၏လျှောက်လွှာအခြေအနေကိုထိရောက်စွာစစ်ဆေးနိုင်သည်။ ၎င်းသည် streaming လုပ်ငန်းများအတွက်အထူးသဖြင့်ဖိုင်တင်ခြင်း, ဒေါင်းလုပ်များသို့မဟုတ်အခြားကွန်ရက်အချက်အလက်လွှဲပြောင်းခြင်းကိုကိုင်တွယ်သည့်အခါဤအချက်ကိုဖျက်သိမ်းခြင်းနှင့် optimizing လုပ်ရန်အလွန်အထောက်အကူပြုသည်။