PHP တွင် Stream သည်အချက်အလက်များ, ကွန်ယက်ချိတ်ဆက်မှုများ, ဒေတာများ, ဒေတာများ, stream_get_filters နှင့် stream_context_create သည် PHP stream လုပ်ငန်းများတွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ပိုမိုရှုပ်ထွေးသောစီးဆင်းမှုလုပ်ငန်းများကိုအကောင်အထည်ဖော်ရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။
Stream_get_Filters သည် PHP function သည်လက်ရှိပတ်ဝန်းကျင်တွင်မှတ်ပုံတင်ထားသော stream fild များကိုပြန်လည်ရောက်ရှိစေသည့် PHP function ဖြစ်သည်။ Stream filter တစ်ခုသည် Data Stream အပြောင်းအလဲအတွက်ပြုပြင်ခြင်းနှင့်ပြုပြင်ခြင်းများကိုပြုပြင်ခြင်းနှင့်ပြုပြင်ခြင်းတို့ကိုထောက်ပံ့ပေးသည့်ယန္တရားတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်ချုံ့ခြင်း, decompression, encryption သို့မဟုတ်စာဝှက်ဖြည်ခြင်းလုပ်ငန်းများ။
<?php
// ရရှိနိုင်သည့် stream filter အားလုံးကိုရယူပါ
$filters = stream_get_filters();
// output filter
foreach ($filters as $filter) {
echo $filter . PHP_EOL;
}
?>
ဤကုဒ်တွင် stream_get_filters function သည်လက်ရှိ PHP ပတ် 0 န်းကျင်တွင်မှတ်ပုံတင်ထားသောစစ်ထုတ်စက်များစာရင်းကိုပြန်ပို့သည်။ ၎င်းကို filter ခင်းကျင်းမှုများကိုဖြတ်သန်းခြင်းဖြင့်ပြုလုပ်နိုင်ပြီး stream processing တွင်အသုံးပြုနိုင်သည့်စစ်ထုတ်စက်များကိုကျွန်ုပ်တို့အားနားလည်စေရန်အတွက်၎င်းကိုပုံနှိပ်ခြင်းဖြင့်ပြုလုပ်နိုင်သည်။
Steam_context_create ကို စီးကြောင်းအခြေအနေတစ်ခုဖန်တီးရန်အသုံးပြုသည်။ Stream Context သည် PHP တွင် configuration object တစ်ခုဖြစ်ပြီး streamy server တစ်ခု setting ကို setting setting setting setting setting setting setting stream options များတပ်ဆင်ထားသည့် stream operations များပြုလုပ်ရန် PHP တွင် configuration object တစ်ခုဖြစ်သည်။
<?php
// တစ် ဦး stream အခြေအနေကိုဖန်တီးပါ,စစ်ထုတ်စက်များနှင့်အခြားရွေးချယ်စရာများပါဝင်သည်
$options = [
'http' => [
'filter' => 'string.toupper' // built-in filter ကိုသုံးပါ,streaming ဒေတာကိုစာလုံးအမြောက်အမြားပြောင်းပါ
]
];
$context = stream_context_create($options);
// ဖန်တီးထားသောအခြေအနေတွင် အသုံးပြု. ဖိုင်စီးကိုဖွင့်ပါ
$fp = fopen('http://gitbox.net/example.txt', 'r', false, $context);
// ဒေတာနှင့် output ကိုဖတ်ပါ
if ($fp) {
while ($line = fgets($fp)) {
echo $line;
}
fclose($fp);
} else {
echo "ဖိုင်ကိုဖွင့ ်. မရပါ!";
}
?>
အထက်ဖော်ပြပါဥပမာတွင်ကျွန်ုပ်တို့သည် text အကြောင်းအရာအားလုံးကို Gitbox.net မှစာလုံးအကြီးများကိုဖတ်ရန် stream_context_create ပါသော stream_context_create ပါသော stream အခြေအနေကိုဖန်တီးသည်။ ထို့နောက်အဝေးမှဖိုင်ကို fopen မှတဆင့်ဖွင့ ်. ဖတ်ရန်ဤအခြေအနေကိုသုံးပါ။
stream_get_filts နှင့် stream_context_create ကို ပေါင်းစပ်ပြီး PHP stream လုပ်ငန်းများတွင်ပိုမိုရှုပ်ထွေးသောလိုအပ်ချက်များကိုသင်အကောင်အထည်ဖော်နိုင်သည်။ ဥပမာအားဖြင့်, streaming content ကိုကိုင်တွယ်ဖြေရှင်းရန်သို့မဟုတ်လိုအပ်သလိုလုပ်ရန်နှင့်ရွေးချယ်စရာများကိုပင်ပေါင်းစပ်ရန်မှန်ကန်သော filter များကိုသင် dvonically select လုပ်နိုင်သည်။
<?php
// ရရှိနိုင်သည့် stream filter အားလုံးကိုရယူပါ
$filters = stream_get_filters();
// ရရှိနိုင်သည့်စစ်ထုတ်ကိရိယာများပြပါ
echo "ရရှိနိုင်သည့်စီးဆင်းမှု filter များ:" . PHP_EOL;
foreach ($filters as $filter) {
echo $filter . PHP_EOL;
}
// အခြေအနေတစ်ခုဖန်တီးပါ,ဆွေမျိုးမျိုးစုံကိုသုံးပါ
$options = [
'http' => [
'filter' => 'string.rot13' // အသုံးပြုROT13encryption ကို filter
],
'ftp' => [
'filter' => 'convert.iconv.utf-8/iso-8859-1' // အသုံးပြု字符编码转换过滤器
]
];
// တစ် ဦး stream အခြေအနေကိုဖန်တီးပါ
$context = stream_context_create($options);
// အသုံးပြု上下文访问远程文件
$fp = fopen('http://gitbox.net/example.txt', 'r', false, $context);
if ($fp) {
while ($line = fgets($fp)) {
echo $line;
}
fclose($fp);
} else {
echo "ဖိုင်ကိုဖွင့ ်. မရပါ!";
}
?>
ဒီဥပမာမှာရရှိနိုင်တဲ့ stream filters အားလုံးကိုအရင်စာရင်းပြုစုတယ်။ ထို့နောက် stream အခြေအနေကို HTTP နှင့် FTP protocol များအသီးသီးရှိသည့်နေရာကိုဖန်တီးထားသော stream ကိုဖန်တီးထားသည်။ ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် streaming content များကို encryption, encoding နှင့်ပြောင်းလဲခြင်းကဲ့သို့သောရှုပ်ထွေးသောလုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်။
Stream_get_Filters နှင့် Stream_context_create သည် PHP streaming လုပ်ငန်းများတွင်အလွန်အသုံးဝင်သောကိရိယာများဖြစ်သည်။ ဤလုပ်ဆောင်မှုနှစ်ခုမှတစ်ဆင့်ကျွန်ုပ်တို့သည် flight data များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်, စီးဆင်းမှုရွေးချယ်မှုများစသည်တို့ကဲ့သို့ပိုမိုပြောင်းလွယ်ပြင်လွယ်ဖြစ်လွယ်စေနိုင်သည်။ အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုအသုံးပြုခြင်းသည်အမျိုးမျိုးသော stream-apporting လုပ်ငန်းများကိုထိရောက်စွာကိုင်တွယ်ရန်ကူညီနိုင်သည်။
ဤလုပ်ဆောင်ချက်နှစ်ခုကိုပေါင်းစပ်ခြင်းအားဖြင့်သင်သည်ဒေသဆိုင်ရာဖိုင်များကိုသာလုပ်ဆောင်နိုင်သော်လည်းကွန်ရက်အရင်းအမြစ်များကိုလည်းလုပ်ကိုင်နိုင်သည်။