ကြီးမားသောဒေတာသို့မဟုတ်ကွန်ယက်စီးဆင်းမှုများနှင့်ဆက်ဆံရာတွင်လုပ်ဆောင်မှုနှင့်စီးဆင်းမှု၏စွမ်းဆောင်ရည်သည်အလွန်အရေးကြီးသည်။ PHP သည် Stream_Get_Filters () function သည်အလွန်အသုံး 0 င်သောကိရိယာတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် stream_get_filters () function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးနိုင်သည်။
Stream filter တစ်ခုသည် Stream ဒေတာကိုလုပ်ဆောင်ရန် "Bridge" ဖြစ်သည်။ သူတို့ကသင့်အားစမ်းချောင်းကိုဖြတ်သန်းသွားသောအခါအချက်အလက်များကိုပြုပြင်ရန်သို့မဟုတ်စစ်ထုတ်ရန်ခွင့်ပြုသည်။ Data data များကို decode လုပ်ရန်, ဒေတာများကို compress လုပ်ခြင်း, encrypt data စသည်တို့ကို အသုံးပြု. PHP သည် built-in filter များကိုထောက်ပံ့ပေးသည်။
သို့သော်အချို့ဖြစ်ရပ်များတွင် stream processing သည်သင့်တော်သော filter မပါဘဲအလွန်နှေးကွေးစွာသို့မဟုတ်ပိတ်ဆို့ခြင်း, အထူးသဖြင့်ကြီးမားသောဒေတာသို့မဟုတ်ကွန်ယက်တောင်းဆိုမှုများကိုကိုင်တွယ်သောအခါ။ ဒါကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်လက်ရှိရရှိနိုင်သည့် stream filters များကိုကြည့်ရှုရန် stream_get_filters () ကိုသုံးနိုင်သည်။
stream_get_filters () function သည်မှတ်ပုံတင်ထားသော stream filters အားလုံး၏အမည်များပါသည့် array တစ်ခုသို့ပြန်ပို့သည်။ ဒေတာပြုပြင်ခြင်းအတွင်းပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်သင့်တော်သောစစ်ထုတ်စက်များရှိမရှိစစ်ဆေးရန်သင်အသုံးပြုနိုင်သည်။
array stream_get_filters ( void )
ရရှိနိုင်သည့် stream filter များအားလုံးကိုစာရင်းပြုစုရန် Stream_get_Filters () ကို မည်သို့အသုံးပြုရမည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုရှိသည်။
<?php
// လက်ရှိမှတ်ပုံတင်ထားသော stream filters အားလုံးကိုရယူပါ
$filters = stream_get_filters();
// အားလုံး filters အားလုံး၏အမည်များ output ကို
foreach ($filters as $filter) {
echo $filter . PHP_EOL;
}
?>
ဒီဥပမာမှာရရှိနိုင်တဲ့ stream filter တွေကိုအားလုံးစာရင်းပြုစုပါတယ်။ ဤစစ်ထုတ်သည့်သူများနှင့်အတူကျွန်ုပ်တို့သည် stream အပြောင်းအလဲအတွက်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်မှန်ကန်သော filter ကိုရွေးချယ်နိုင်သည်။
များသောအားဖြင့် stream ပိတ်ဆို့ခြင်းသည်အခြေအနေနှစ်ခုတွင်ပါ 0 င်သည်။
Blocking ကိုဖတ်ပါ ။ စမ်းချောင်းတစ်ခုမှအချက်အလက်များကိုဖတ်ရှုသောအခါအချက်အလက်အပြည့်အဝမရမချင်းပရိုဂရမ်သည်ပိတ်ဆို့နိုင်သည်။
ရေးချေခြင်းဖြင့်ပိတ်ဆို့ခြင်း - အချက်အလက်များကိုစမ်းရေဖြင့်ရေးသည့်အခါ target stream သည်ပိုမိုဒေတာများကိုလက်ခံခြင်းမခံရမချင်းအစီအစဉ်လည်းရှိသည်။
ဤအရာကိုရှောင်ရှားရန်ကျွန်ုပ်တို့သည်ရေကြောင်း၏ဖတ်ရန်နှင့်ရေးရန်စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်သင့်လျော်သောစစ်ထုတ်စက်များကိုသုံးနိုင်သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် czip comment compression filter များကိုသုံးနိုင်သည်သို့မဟုတ်စီးဆင်းမှုကိုပြုလုပ်ရန်ပိတ်ဆို့ခြင်းမဟုတ်သော mode ကိုသုံးနိုင်သည်။
ဤနေရာတွင် ZLIB ကို အသုံးပြုခြင်း filter များကိုချုံ့ရန်ဥပမာတစ်ခု၏ဥပမာတစ်ခုဖြစ်သည်။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$filename = 'http://gitbox.net/data.txt';
$stream = fopen($filename, 'r');
// အသုံးပြု zlib Compression စီးဆင်းမှု filter
stream_filter_append($stream, 'zlib.deflate');
// ဖတ်ခြင်းနှင့် output ကို compressed ဒေတာ
while ($data = fread($stream, 1024)) {
echo $data;
}
// စီးကိုပိတ်ပါ
fclose($stream);
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် zlib.deflate compression filter ကို stream_filter_append () မှစီးဆင်းနေသောအချက်အလက်များနှင့်ချိတ်ဆက်ခြင်းကိုလျှော့ချပြီးအချက်အလက်ထုတ်လွှင့်မှုပမာဏကိုလျှော့ချခြင်းနှင့်ဖြစ်နိုင်သောပိတ်ဆို့ခြင်းပြ problems နာများကိုရှောင်ရှားနိုင်သည်။
Stream Operations တွင်ပိတ်ဆို့ခြင်းကိုရှောင်ရှားလိုပါက PHP ၏ stream_set_set_blocking () function ကိုသုံးနိုင်သည်။ ဤနည်းအားဖြင့်ဒေတာအဆင်သင့်မဖြစ်သေးလျှင်ပင်အစီအစဉ်သည်မစောင့်ပါ။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$filename = 'http://gitbox.net/data.txt';
$stream = fopen($filename, 'r');
// Non-blocking mode ကိုသတ်မှတ်ပါ
stream_set_blocking($stream, false);
// ဒေတာကိုဖတ်ရန်ကြိုးစားပါ
$data = fread($stream, 1024);
if ($data === false) {
echo "ဒေတာကိုဖတ်ရန်ပျက်ကွက်,အဆိုပါစီးသည်ပိတ်ဆို့ခြင်းမဟုတ်သောအခြေအနေတွင်ရှိသည်。";
} else {
echo $data;
}
// စီးကိုပိတ်ပါ
fclose($stream);
?>
ဤဥပမာတွင်ကျွန်ုပ်တို့သည် stream_set_set_blocking () function မှတဆင့်ပိတ်ဆို့ခြင်းမဟုတ်သော mode သို့ set up လုပ်ထားသည့် mode သို့ချထားသည်။
stream_get_filters () function သည်လက်ရှိရရှိနိုင်သည့် stream filter များကိုကြည့်ရှုနိုင်သည့်စွမ်းရည်ကိုပေးသည်။ သင့်လျော်သော filter ကိုရွေးချယ်ခြင်းနှင့်ပိတ်ဆို့ခြင်းမရှိသောစီးဆင်းမှု mode ဖြင့်ပေါင်းစပ်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကြီးမားသောဒေတာသို့မဟုတ်ကွန်ယက်စီးဆင်းမှုများကိုပြုပြင်သည့်အခါ PHP အစီအစဉ်များ၏စွမ်းဆောင်ရည်နှင့်တုံ့ပြန်မှုမြန်နှုန်းကိုတိုးတက်အောင်လုပ်နိုင်သည်။ ဤဆောင်းပါးတွင်မိတ်ဆက်ခြင်းသည် PHP ၏ Stream filter ကိုမည်သို့အသုံးပြုရမည်ကိုပိုမိုနားလည်သဘောပေါက်ရန်နှင့်ပြ problems နာများကိုပိတ်ဆို့ခြင်းကိုပိုမိုနားလည်ရန်သင့်အားပိုမိုနားလည်ရန်မျှော်လင့်ပါသည်။