PHP ပရိုဂရမ်တွင် Stream သည်အလွန်အစွမ်းထက်သော function တစ်ခုဖြစ်သည်။ ၎င်းသည်ဖိုင်များနှင့်ကွန်ယက်ချိတ်ဆက်မှုများကဲ့သို့သော input နှင့် output လုပ်ငန်းများကိုကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ PHP PHP သည် clow_get_filters သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ developer များသည် streaming လုပ်ငန်းလည်ပတ်နေစဉ်အတွင်းမှတ်ဉာဏ်ယိုစိမ့်မှုပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်ပြီးအစီအစဉ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
ဤဆောင်းပါးသည် stream_get_filters function ကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးမည်, စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်လုပ်ခြင်း,
Stream_get_Filters သည် PHP မှရရှိသော finam များကိုရရှိရန် PHP မှပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ Stream filter သည် data dialogue, decode, compress များနှင့်အခြားစစ်ဆင်ရေးများပြုလုပ်နိုင်သည့်ဒေတာစီးဆင်းမှုများကိုလုပ်ဆောင်ရန်အသုံးပြုသော functional module တစ်ခုဖြစ်သည်။ stream_get_filters function ကိုမှတစ်ဆင့် developer များက stream ပတ် 0 န်းကျင်တွင်မှတ်ပုံတင်ထားသော stream filming အားလုံးကိုကြည့်ရှုနိုင်သည်။ ၎င်းသည် Stream Operations နှင့်စွမ်းဆောင်ရည်တိုးတက်မှုအတွက်အလွန်အရေးကြီးသည်။
array stream_get_filters ( void )
ပြန်လာတန်ဖိုး - ဤလုပ်ဆောင်ချက်သည်ရရှိနိုင်သည့် filter အမည်များအားလုံးပါ 0 င်သောခင်းကျင်းမှုကိုပြန်လည်ရရှိစေသည်။
$filters = stream_get_filters();
print_r($filters);
ဤကုဒ်သည်လက်ရှိ PHP ပတ် 0 န်းကျင်ရှိရရှိနိုင်သည့် stream filter အားလုံးကိုစာရင်းပြုစုထားသည်။
streaming streaming စစ်ဆင်ရေးများသည်အချက်အလက်အမြောက်အများဖြစ်စဉ်များပြုလုပ်သောအခါ, Memory leuss သည်အချိန်မီဖြန့်ချိနိုင်သည့်အမှတ်တရပိုင်းတွင်ထည့်သွင်းထားသောမှတ်ဉာဏ်ကိုရည်ညွှန်းသည်။ နောက်ဆုံးတွင်စွမ်းဆောင်ရည်ကိုပိုမိုအကျိုးသက်ရောက်စေသည်
မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်၎င်းတို့ကိုအောက်ပါနည်းလမ်းများဖြင့်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်သည်။
PHP's Stream filter သည်၎င်းကိုလုပ်ဆောင်စဉ်စီးဆင်းမှုအချက်အလက်များကိုပြောင်းလဲရန်ခွင့်ပြုသည်။ ဥပမာအားဖြင့်, သင်သည် memory စားသုံးမှုကိုလျှော့ချရန်ဖိုင်များကိုဖတ်ရှုသောအခါ compression filter များကိုသုံးနိုင်သည်။
$stream = fopen('compress.zlib://php://input', 'r');
while ($line = fgets($stream)) {
echo $line;
}
fclose($stream);
ဤဥပမာတွင် compress.zlib filter ကို input stream ၏ contents များကိုချုံ့ရန်နှင့်မှတ်ဉာဏ်အသုံးပြုမှုကိုလျှော့ချရန်အသုံးပြုသည်။
ရရှိနိုင်သည့် filter များကို stream_get_filters မှတစ်ဆင့်ရယူပြီးသည့်နောက်တွင်လက်ရှိစီးဆင်းမှုလည်ပတ်မှုအတွက်အကောင်းဆုံးသော filter ကိုသင် dvonce select လုပ်နိုင်သည်။ ဥပမာအားဖြင့်, ဖိုင်များကိုမတူညီသောပုံစံများဖြင့်လုပ်ဆောင်သည့်အခါအပြောင်းအလဲများတိုးတက်စေရန်အတွက်မတူညီသော filter များကိုသင်ရွေးချယ်နိုင်သည်။
$filters = stream_get_filters();
if (in_array('zlib.inflate', $filters)) {
$stream = fopen('php://input', 'r');
stream_filter_append($stream, 'zlib.inflate');
}
ဤနည်းအားဖြင့်ကျွန်ုပ်တို့သည် Runtime တွင်မှန်ကန်သော filter ကိုရွေးချယ်ပြီးမလိုအပ်သော filter များကိုရှောင်ရှားနိုင်ပြီး Memory overhead ကိုလျှော့ချနိုင်သည်။
Stream Mode သည်အချက်အလက်များကိုမည်သို့ဖတ်ရှုပြီးရေးသားသည်ကိုဆုံးဖြတ်သည်။ PHP တွင်သင့်တော်သော streaming modes (ဥပမာ R + , W + စသည်စသဖြင့်) ကို အသုံးပြု. Memory စားသုံးမှုကိုလျှော့ချနိုင်သည်။ ဥပမာအားဖြင့်, သင်သည်ဖိုင်၏တစ်စိတ်တစ်ပိုင်းကိုဖတ်ရန်သာလိုအပ်ပါကမလိုအပ်သောမှတ်ဉာဏ်အသုံးပြုမှုကိုရှောင်ရှားရန်ဖတ်ရန်တစ်ခုတည်းသော mode ကိုအသုံးပြုရန်အကောင်းဆုံးဖြစ်သည်။
မှတ်ဉာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားခြင်းအပြင်စွမ်းဆောင်ရည်ကောင်းမွန်မှုသည်ဖွံ့ဖြိုးတိုးတက်မှုအတွက်ဘုံလိုအပ်ချက်ဖြစ်သည်။ stream filter များကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ဒေတာဖတ်ရှုခြင်းနှင့်ရေးသားခြင်းအတွင်းကျွန်ုပ်တို့ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ပြီးအစီအစဉ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်နိုင်သည်။
ဒေတာ compression သည်ကြီးမားသောဖိုင်များကိုပြုပြင်သည့်အခါအသုံးပြုသောစွမ်းဆောင်ရည် optimization နည်းလမ်းဖြစ်သည်။ PHP သည် stream filter များဖြင့်ချုံ့ခြင်းနှင့် decompress များကို decompression streams များကိုထောက်ပံ့သည်။
$stream = fopen('php://temp', 'r+');
stream_filter_append($stream, 'zlib.deflate');
Zlib.Deflate filter ကိုအသုံးပြုခြင်းသည် output stream အချက်အလက်များကိုချုံ့ခြင်းဖြင့်ကြီးမားသောဖိုင်များပြုပြင်သည့်အခါစွမ်းဆောင်ရည်တိုးတက်အောင်လုပ်နိုင်သည်။
ပြတ်တောင်းပြတ်တောင်းအပြောင်းအလဲသည် stream processing စွမ်းဆောင်ရည်တိုးတက်စေရန်ဘုံနည်းလမ်းတစ်ခုဖြစ်သည်။ PHP သည် espnchronous stream processing ကိုမပံ့ပိုးနိုင်သော်လည်းကျိုးကြောင်းဆီလျော်သောစီးပွါးရေးလုပ်ငန်းများ, ဥပမာအားဖြင့်, အပြိုင် stream လုပ်ငန်းများကိုစမ်းချောင်းများဖြစ်ရန် Curl ကဲ့သို့သောကိရိယာများကိုအသုံးပြုပါ။
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/some-large-file');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$data = curl_exec($ch);
curl_close($ch);
allynchronous stream အပြောင်းအလဲနဲ့လုပ်ခြင်းသည်တစ်ပြိုင်နက်တည်းလုပ်ဆောင်သောအခါစွမ်းဆောင်ရည်ကိုသက်ရောက်စေပြီးစွမ်းဆောင်ရည်ကိုတိုးတက်စေနိုင်သည်။