PHP တွင်ထုတ်ယူသည့်အခါများသောအားဖြင့်ကျွန်ုပ်တို့သည်တစ်ခါတစ်ရံတွင်စိတ်ကြိုက်ကြားနာမှုများကိုအကောင်အထည်ဖော်ရန်အချက်အလက်ပိတ်ပင်တားဆီးမှု (ရေပုံးများ) ကိုဖတ်ရှုနိုင်သည့်အချက်အလက်များ (ရေပုံးများ) ကိုဖတ်ရှုနိုင်ပါသည်။ PHP ၏ Stream filter ယန္တရားသည် stream_bucket_make_writeable တွင်အစွမ်းထက်သော interface တစ်ခုဖြစ်သည်။
ဤဆောင်းပါးသည် Stream_bucket_make_witable ၏အခန်းကဏ် on ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။ PHP streams ရှိဒေတာလုပ်ကွက်များကိုမည်သို့ဖတ်ရှုရမည်နည်း,
Steam_bucket_make_writeable ဆိုတာ PHP stream filter-related function တစ်ခုဖြစ်ပြီး php_stream_bucket ဖွဲ့စည်းပုံမှာစစ်ဆင်ရေး interface ကိုပိုင်တယ်။ ၎င်း၏ function သည် MARAM ၏အတွင်းပိုင်းကြားခံမှဒေတာပိတ်ဆို့ခြင်း (ပုံး) ကို "ထုတ်ယူ" ရန်ဖြစ်သည်။ ဒီပုံးထဲမှာလက်ရှိရရှိနိုင်တဲ့အချက်အလက်တွေပါ 0 င်ပါတယ်။
ဤလုပ်ဆောင်မှုသည် Customser Stream Filters များကိုအကောင်အထည်ဖော်ရန်အတွက်အသုံးပြုလေ့ရှိပြီး developer များကို compression, encryption, decoding နှင့်အခြားလုပ်ငန်းများကဲ့သို့သော streamed data များကိုဆေးကြောသန့်စင်ခြင်းများပြုလုပ်ရန်ကူညီသည်။
stream_bucket_make_make_make_make_make_make_make_writeable ကိုသုံးပြီးဒေတာပိတ်ပင်တားဆီးမှုကိုဖတ်ခြင်း
Custom Filent Filter ကိုဖန်တီးပြီးမှတ်ပုံတင်ပါ Flow Filter အတန်းသည် Php_User_Fileter ကို အမွေဆက်ခံရန်နှင့် filter method ကို override လုပ်ရန်လိုအပ်သည်။
stream_bucket_make_make_writeable အတွင်းပိုင်း filter method ကိုခေါ်ပါ
ဒေတာများကိုဖတ်ရန်ဤလုပ်ဆောင်မှုမှတစ်ဆင့်ပုံးတစ်ပုံးကိုရယူပါ။
Read Data Block <br> <br> နောက် filter သို့ဒေတာများကိုဖတ်ရန်, ပြုပြင်မွမ်းမံခြင်းသို့မဟုတ်ဖြတ်သွားနိုင်သည်။
အပြောင်းအလဲနဲ့ရလဒ်ကိုပြန်ပို့ခြင်းနှင့် filter ကိုစစ်ဆင်ရေးဖြည့်စွက်
အောက်ပါဥပမာသည်ရိုးရှင်းသော Custom Stream Filter ကိုမည်သို့သတ်မှတ်ရမည်ကိုပြသသည်။ stream_bucket_make_make_writeable မှအချက်အလက်ပိတ်ပင်တားဆီးမှုကိုဖတ်ပါ ။
<?php
class MyReadFilter extends php_user_filter {
public function filter($in, $out, &$consumed, $closing) {
// ဒေတာလုပ်ကွက်အားလုံး looping
while ($bucket = stream_bucket_make_writeable($in)) {
// ဖတ် bucket အချက်အလက်
$data = $bucket->data;
// 这里我们简单打印ဖတ်到的数据
echo "ဖတ်数据块内容: " . $data . "\n";
// အမှတ်အသားများအားဖြင့်စားသုံး bytes အရေအတွက်
$consumed += $bucket->datalen;
// သေတမ်းစာ bucket လာမယ့် filter သို့မဟုတ် output ကိုစီးဆင်း
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
// Custom Filter တစ်ခုကိုမှတ်ပုံတင်ပါ
stream_filter_register("myreadfilter", "MyReadFilter") or die("Failed to register filter");
// အသုံးပြုမှုဥပမာ:从文件流中ဖတ်数据并应用过滤器
$fp = fopen("gitbox.net/sample.txt", "r");
// အဆိုပါ stream မှ custom filter ကိုပူးတွဲပါ
stream_filter_append($fp, "myreadfilter", STREAM_FILTER_READ);
// ဖတ်文件内容,filter ကို forgger ပါလိမ့်မယ် filter နည်းလမ်း
while (!feof($fp)) {
fread($fp, 8192);
}
fclose($fp);
?>
stream_bucket_make_make_writeable ($ in) - Input Bucket စာရင်းမှပုံးတစ်ပုံးကိုထုတ်ယူပါ။ ပြန်လာသောပုံးအရာဝတ်ထုတွင် ပစ္စည်း (string data) နှင့် Datalen (Data Data) တွင်ပါ 0 င်သည်။
ဒေတာများကိုဖတ်ရှုပြီးနောက် Stream_bucket_append ($ Bucket, $ Bucket) ကို Output Procession ကွင်းဆက်ကိုသေချာစေရန်ရေပုံးသို့ကူးယူရန်ဖုန်းခေါ်ဆိုရမည်။
ဒေါ်လာကုန်သည်များသည် Stream Buffer ၏စီမံခန့်ခွဲမှုများကိုထိခိုက်စေသည့် Data blocks ကိုမည်မျှသုံးစွဲသည်ကိုစစ်ဆေးရန်အသုံးပြုသည်။
PSFS_PAPS_ON ကိုယေဘုယျအားဖြင့် အသုံးပြု. PSFS_Pass_on ကို အသုံးပြု. PSFS_PAPS_ON ကိုအသုံးပြုသည်။
Stream_bucket_make_writable သည် PHP Stream filter လုပ်ကွက်များရှိ stream data လုပ်ကွက်များကိုစာဖတ်ခြင်းအတွက် core interface ဖြစ်သည်။ Custom stream filter များကတဆင့်ကျွန်ုပ်တို့သည် Real-time compression, encryption, log monitoring စသည့်ရှုပ်ထွေးသောအချက်အလက်အပြောင်းအလဲများကိုအကောင်အထည်ဖော်နိုင်သည်။
အခြေခံဒေတာပိတ်ဆို့ခြင်းလုပ်ငန်းများစီးဆင်းမှုများကိုကျွမ်းကျင်စေခြင်းကဖိုင်ကြီးများနှင့်ကွန်ယက် streaming data studing လုပ်သည့်အခါပိုမိုလွယ်ကူစေရန်အတွက်ပိုမိုပြောင်းလွယ်ပြင်လွယ်နှင့်စွမ်းဆောင်ရည်ကိုရရှိစေသည်။
သငျသညျဖွံ့ဖြိုးရေးကာလအတွင်းစီးဆင်းမှုအတွက်စွမ်းဆောင်ရည် bottlenecks ကိုသင်ကြုံတွေ့ရပါကသို့မဟုတ်ချောင်းများတွင်ကောင်းမွန်သောအချက်အလက်ပြုပြင်ခြင်းပြုလုပ်ရန်လိုအပ်သည်ဆိုပါက stream_bucket_make_make_writeable apis ကိုလေ့လာရန်နှင့်လျှောက်ထားရန်အကြံပြုပါသည်။