လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Stream_wraper_Register နှင့် တွဲဖက်. stream_get_filts နှင့် stream_wraper_register ကိုသုံးပါ

Stream_wraper_Register နှင့် တွဲဖက်. stream_get_filts နှင့် stream_wraper_register ကိုသုံးပါ

gitbox 2025-05-27

PHP တွင် stream သည် files, network connection များ, memor data data စသည့်အချက်အလက်များကဲ့သို့သောအချက်အလက်အမျိုးမျိုးကိုပြုလုပ်ရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်သည့်လုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ အချက်အလက်များစွာစာဖတ်ခြင်း, ဤလုပ်ငန်းများ၌ stream_get_filters နှင့် stream_wropper_register functions များသည် Custom Stram Studding လုပ်ဆောင်ချက်များကိုအကောင်အထည်ဖော်ရန်သော့ချက်များဖြစ်သည်။ ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုပေါင်းစပ်ခြင်းဖြင့်ထုံးစံ stram studing လုပ်ဆောင်မှုများကိုမည်သို့အကောင်အထည်ဖော်ရမည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည်။

1 ။ Stream filter ဆိုတာဘာလဲ။

PHP တွင် stream filter များကသင့်အားစာမဖတ်မီအချက်အလက်များကိုပြုပြင်ရန်ခွင့်ပြုသည်။ text encoding, encryption နှင့် decryption, data compression နှင့် data format များပြောင်းလဲခြင်းကဲ့သို့သောလုပ်ငန်းများကို stream filter များကိုကိုင်တွယ်ရန်အသုံးပြုနိုင်သည်။ PHP သည် string.toupper ကဲ့သို့သော built-in stream filters များစွာကိုထောက်ပံ့ပေးသည်။

2 ။ stream_get_filters function ကို

Stream_get_Filters function ကိုလက်ရှိရရှိနိုင်သည့် filter များစာရင်းကိုပြန်ပို့ရန်အသုံးပြုသည်။ မည်သည့် stream filter များကိုဤလုပ်ဆောင်မှုမှတစ်ဆင့် system တွင်မည်သည့် system တွင်ထောက်ပံ့ထားကြောင်းစစ်ဆေးနိုင်သည်။ ထို့နောက်သင်၏စီးသို့လျှောက်ထားရန်သင့်လျော်သော filter ကိုရွေးချယ်ပါ။

သဒ္ဒါ:

 array stream_get_filters(void)

Value ကိုပြန်သွားပါ

ဤလုပ်ဆောင်ချက်သည်လက်ရှိမှတ်ပုံတင်ထားသောစစ်ထုတ်သည့်အမည်များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုတစ်ခုရရှိစေသည်။

ဥပမာ -

 $filters = stream_get_filters();
print_r($filters);

ဤကုဒ်သည်လက်ရှိထောက်ပံ့ထားသော stream filters အားလုံး၏အမည်များကိုထုတ်ပေးသည်။

3 ။ stream_wraper_register function ကို

stream_wraper_register function ကိုထုံးစံ stream wrapper ကိုမှတ်ပုံတင်ရန်အသုံးပြုသည်။ ဤလုပ်ဆောင်မှုဖြင့် PHP သည်သတ်သတ်မှတ်မှတ်စစ်ဆေးမှုများကိုကိုင်တွယ်နိုင်ရန်စိတ်ကြိုက် protocol တစ်ခုကိုဖန်တီးနိုင်သည်။ Custom Stream Wrappers များကိုသင်အပြည့်အဝစိတ်ကြိုက် data processing flow ကိုဖန်တီးရန် Stream Filters ဖြင့်အသုံးပြုနိုင်သည်။

သဒ္ဒါ:

 bool stream_wrapper_register ( string $protocol , string $classname )
  • $ protocol : ဖိုင် , http စသဖြင့်မှတ်ပုံတင်ခံရမည့် protocol name ကိုမှတ်ပုံတင်ရမည်။

  • $ classname : streamwraper interface ကိုအကောင်အထည်ဖော်မည့်အတန်းအစားအမည်။

ဥပမာ -

 class MyStreamWrapper {
    // ထုံးစံ stream အပြောင်းအလဲနဲ့ယုတ္တိဗေဒကိုအကောင်အထည်ဖော်ပါ
}

stream_wrapper_register("myprotocol", "MyStreamWrapper");

အပေါ်ကဥပမာမှာ protocol ကို My MyProtocol လို့ခေါ်တဲ့ protocol ကို မှတ်ပုံတင်ပြီး, ယခုအချိန်တွင် MyProtocol ဖြင့်စတင်သော URLs အားလုံး - // ကို MyChreamwapper အတန်းသို့ပြောင်းလဲခြင်းကိုလွှဲပြောင်းပေးလိမ့်မည်။

4 ။ stream_get_filters နှင့် stream_wrapper_register ကို သုံးပါ

stream_get_filters နှင့် stream_wrapper_register ကို အသုံးပြုခြင်းသည်တိကျသောလိုအပ်ချက်များနှင့်ကိုက်ညီစေရန်အတွက် stream stream process တွင် stream filems များကိုရှာဖွေနိုင်သည်။

ဥပမာ - စိတ်ကြိုက် protocol ကိုဖန်တီးပြီး filter များကိုသုံးပါ

ကျွန်ုပ်တို့သည်စိတ်ကြိုက်ခင်း protocol protocol protocol ကို ဖန်တီးရန်လိုအပ်ပြီး၎င်းတွင်စမ်းချောင်းကိုအသုံးပြုပါ။ ကျနော်တို့အောက်ပါအတိုင်းလုပ်နိုင်ပါတယ်:

 class MyStreamWrapper {
    private $stream;

    public function stream_open($path, $mode, $options, &$opened_path) {
        // ပွင့်လင်းစီး
        $this->stream = fopen($path, $mode);
        return $this->stream !== false;
    }

    public function stream_read($count) {
        return fread($this->stream, $count);
    }

    public function stream_write($data) {
        return fwrite($this->stream, $data);
    }

    public function stream_close() {
        fclose($this->stream);
    }
}

// စိတ်ကြိုက် stream wrapper မှတ်ပုံတင်ပါ
stream_wrapper_register("myprotocol", "MyStreamWrapper");

// စီးဆင်းမှု filter ကိုအသုံးပြုခြင်း
$filters = stream_get_filters();
if (in_array('string.toupper', $filters)) {
    stream_filter_append($this->stream, 'string.toupper');
}

// စိတ်ကြိုက် protocol ဖိုင်ကိုဖွင့်ပါ
$file = fopen("myprotocol://example.txt", "r+");
$content = fread($file, 100);
echo $content;
fclose($file);

အထက်ပါဥပမာတွင် My MyProtocol ဟုခေါ်သောစိတ်ကြိုက်ခင်း protocol ကိုဖန်တီးပြီး string.toupper stream filter ကိုရရှိနိုင်မည်လားစစ်ဆေးရန် Promeam_get_Filters များကို စစ်ဆေးရန်ကျွန်ုပ်တို့ဖန်တီးခဲ့သည်။ အကယ်. ရရှိနိုင်ပါကစာဖတ်ခြင်းကိုအလိုအလျောက်ပြောင်းလဲသွားစေရန် filter ကို calfi actifier_filter_append မှတစ်ဆင့်ကျွန်ုပ်တို့အသုံးပြုသည်။

5 ။ အကျဉ်းချုပ်

stream_get_filters နှင့် stream_wrapper_register ၏အသုံးပြုမှုအားဖြင့်ကျွန်ုပ်တို့သည်တိကျသောဒေတာအပြောင်းအလဲများကိုဖြည့်ဆည်းရန်ပြောင်းလွယ်ပြင်လွယ်သောစိတ်ကြိုက်ပြင်ဆင်ရန်လုပ်ဆောင်ချက်များကိုဖန်တီးနိုင်သည်။ stream_get_filters များသည် stream_wrapper_register အား စိတ်ကြိုက် protocol များအတွက်စိတ်ကြိုက်ချွေတာသောလုပ်ငန်းများအကောင်အထည်ဖော်မှုကိုအကောင်အထည်ဖော်ရန်ခွင့်ပြုနေစဉ် Stream_Wrilts စီမံခန့်ခွဲမှုစွမ်းရည်များကိုချွေတာခြင်းစီမံခန့်ခွဲမှုစွမ်းရည်များကိုထောက်ပံ့ပေးသည်။ ထိုနှစ်ခုပေါင်းစပ်မှုသည် PHP ၏စွမ်းရည်ကို stream processing လုပ်ရန်နှင့် code ၏ပြောင်းလွယ်ပြင်လွယ်မှုတိုးတက်စေရန်အတွက် PHP ၏စွမ်းရည်ကိုများစွာချဲ့ထွင်နိုင်သည်။