လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> ပေါင်းစပ်အတွက် stream_get_filters နှင့် stream_filter_append အသုံးပြုနည်း

ပေါင်းစပ်အတွက် stream_get_filters နှင့် stream_filter_append အသုံးပြုနည်း

gitbox 2025-05-28

PHP တွင် STAM သည်ဖိုင်များ, network connection များသို့မဟုတ်အခြား inputpros / output အရင်းအမြစ်များကိုကိုင်တွယ်ရန်အတွက်အဓိကသော့ချက်ဖြစ်သည်။ stream filter များသည်စမ်းချောင်းတွင်အချက်အလက်များကိုထုတ်လွှင့်ပြီးစာမဖတ်မီဒေတာများကိုပြုပြင်မွမ်းမံနိုင်သည့်စမ်းချောင်းများနှင့်တွဲဖက်ထားသောလုပ်ဆောင်ချက်အချို့ကိုပြုလုပ်သည်။ Stream_get_Filters နှင့် Stream_filter_append သည် PHP တွင်စစ်ထုတ်သည့် PHP တွင်အရေးကြီးသောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။

ဤဆောင်းပါးသည်ဤလုပ်ဆောင်ချက်နှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုအသေးစိတ်ရှင်းပြပါမည်။ streaming data streaming data filtering ကိုအကောင်အထည်ဖော်ရန်မည်သို့အတူတကွအသုံးပြုနိုင်သည်ကိုရှင်းပြပါမည်။

Stream_get_Filters ဆိုတာဘာလဲ။

stream_get_filters function ကိုလက်ရှိရရှိနိုင်သည့် stream filters အားလုံးကိုရယူရန်အသုံးပြုသည်။ stream filter များသည်စီးဆင်းနေသောသို့မဟုတ်လုပ်ငန်းစဉ်အချက်အလက်များ၏အပြုအမူကိုစီးဆင်းစေနိုင်သောကြိုတင်သတ်မှတ်ထားသောလုပ်ဆောင်ချက်များဖြစ်သည်။ Stream_get_Filters ခေါ်ဆိုခြင်းဖြင့်စနစ်ရှိမှတ်ပုံတင်ထားသော stream filter များကိုသင်ကြည့်ရှုနိုင်သည်။

နမူနာကုဒ်:

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

ဤကုဒ်သည်ရရှိနိုင်သည့် stream filters များကို output လုပ်လိမ့်မည်။ ဥပမာအားဖြင့်, string.toupper , convert.base64-encode စသည့်စစ်ထုတ်စက်များစသည်တို့ကိုသင်တွေ့မြင်နိုင်သည်။ filter တစ်ခုစီသည်တိကျသောအချက်အလက်ပြောင်းလဲခြင်းသို့မဟုတ်လည်ပတ်မှုနှင့်ကိုက်ညီသည်။

stream_filter_append ဆိုတာဘာလဲ။

stream_filter_append function ကိုစမ်းချောင်းတစ်ခုသို့ filter တစ်ခုဖြည့်ဆည်းရန်အသုံးပြုသည်။ steam_filter_preme ာရီ နှင့်မတူဘဲ stream_filter_append သည် စီးဆင်းမှု၏အဆုံးတွင် filter တစ်ခုကိုဖြည့်ဆည်းပေးသည်, stream_filter_append ကို Custom Stream filter တစ်ခုပူးတွဲရန်သို့မဟုတ် system-filter ကိုသုံးပါ။

နမူနာကုဒ်:

 $fp = fopen("php://temp", "r+");
stream_filter_append($fp, "string.toupper");

fwrite($fp, "hello world\n");
rewind($fp);
echo fread($fp, 1024); // ထုတ်လုပ်ခြင်း: HELLO WORLD
fclose($fp);

အပေါ်ကဥပမာမှာ string.toupper ကို filter filter to filter filter ကို filter filter to filter filter ကို file stream ထဲကိုဖြည့်ဆည်းပေးတယ်။

closen_get_filters နှင့် stream_filter_append ကို ဘယ်လိုအသုံးပြုမလဲ။

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

ဥပမာ - တွဲဖက်. သုံးပါ

ဖိုင်တစ်ခု၏ contents များကိုဖတ်ပြီးစာသားအားလုံးကိုစာလုံးအကြီးအဖြစ်ပြောင်းလဲလိုသည်ဆိုပါစို့။ ရရှိနိုင်သည့် filter များကိုကြည့်ရှုရန် Stream_get_get_Filters ကို အသုံးပြုပါမည်, သင့်တော်သော filter တစ်ခုကိုရွေးချယ်ပါ။ ထို့နောက် file stream ကို filter လုပ်ရန် stream_filter_append ကို သုံးပါ။

 // ရရှိနိုင်သည့် filter များကိုကြည့်ပါ
$filters = stream_get_filters();
print_r($filters);

// ညာဘက် filter ကိုရွေးပါ(string.toupper)နှင့်စီးမှပူးတွဲပါ
$fp = fopen("sample.txt", "r+");
stream_filter_append($fp, "string.toupper");

// ဖိုင်အကြောင်းအရာများရေးရန်နှင့်ဖတ်ပါ
fwrite($fp, "hello world\n");
rewind($fp);
echo fread($fp, 1024); // ထုတ်လုပ်ခြင်း: HELLO WORLD
fclose($fp);

စိတ်ကြိုက် filter များကိုသုံးပါ

System Present Filter များအပြင် PHP သည်အသုံးပြုသူများအားစိတ်ကြိုက် strams များကိုဖန်တီးရန်ခွင့်ပြုသည်။ Custom filter များကိုအသုံးပြုရန်သင်ဤစစ်ထုတ်ကိရိယာများကိုပူးတွဲရန် stream_filter_append ကို သုံးနိုင်သည်။ ဤတွင်စာသားထဲမှာစာလုံးအကြီးများအားလုံးကိုစာသားထဲမှာစာလုံးအကြီးများကိုဘယ်လိုပြောင်းလဲရမယ်ဆိုတာပြသတဲ့ရိုးရှင်းတဲ့စိတ်ကြိုက်စစ်အာဏာစစ်တမ်းဥပမာတစ်ခုပါ။

Custom Filter Code Perfection:

 // စိတ်ကြိုက် filter တစ်ခုဖန်တီးပါ
class UppercaseFilter extends php_user_filter {
    public function filter($in, $out) {
        while ($bucket = stream_bucket_make_writeable($in)) {
            // အရင်းအနှီးမှပြောင်းပါ
            $bucket->data = strtoupper($bucket->data);
            stream_bucket_append($out, $bucket);
        }
        return PSFS_PASS_ON;
    }
}

// filter ကိုမှတ်ပုံတင်ပါ
stream_filter_register("uppercase", "UppercaseFilter");

// စိတ်ကြိုက် filter များကိုသုံးပါ
$fp = fopen("php://temp", "r+");
stream_filter_append($fp, "uppercase");

fwrite($fp, "hello world\n");
rewind($fp);
echo fread($fp, 1024); // ထုတ်လုပ်ခြင်း: HELLO WORLD
fclose($fp);

ဤဥပမာတွင်ကျွန်ုပ်တို့သည် custom stream filter တစ်ခုဖြစ်ပြီးစာလုံးအသေးများအားလုံးကိုစာလုံးအ ကြီးများ မှစာလုံးအကြီးများသို့စာလုံးအကြီးများသို့ပြောင်းလဲပေးသည်။

ကောက်ချက်

stream_get_filters နှင့် stream_filter_append သည် PHP ရှိအင်အားကြီးသောစီးဆင်းမှုယန္တရား၏အဓိကလုပ်ဆောင်ချက်များဖြစ်သည်။ ဤလုပ်ဆောင်ချက်များနှင့်အတူ, သင်သည်စီးဆင်းမှုစစ်ထုတ်ခြင်းများကိုအလွယ်တကူစီမံပြီးစမ်းချောင်းရှိအချက်အလက်များကိုအချိန်မှန်ဖြင့်စီမံနိုင်သည်။ ဤလုပ်ဆောင်ချက်များကိုပေါင်းစပ်ခြင်းဖြင့်အမျိုးမျိုးသောဒေတာများချောင်းများကိုပြောင်းလွယ်ပြင်လွယ်စွာလုပ်ဆောင်ရန်နှင့်မတူညီသောအခြေအနေများ၏လိုအပ်ချက်များကိုဖြည့်ဆည်းပေးသည်။

လက်တွေ့တွင်သင်ပိုမိုရှုပ်ထွေးသောအချက်အလက်အပြောင်းအလဲများကိုရရှိခြင်းဖြင့်ရရှိနိုင်သည့် stream filter များကိုကြည့်ခြင်းအားဖြင့်ပိုမိုရှုပ်ထွေးသောဒေတာလုပ်ဆောင်မှုလိုအပ်ချက်များကိုရရှိနိုင်ပါသည်။

stream_get_filters နှင့် stream_filter_apilter_apilter_apilter_apiltend လုပ်ဆောင်ချက်များကိုနားလည်ရန်နှင့်အသုံးပြုရန်အတွက်ဤဆောင်းပါးသည်သင်အကူအညီပေးရန်အထောက်အကူပြုလိမ့်မည်ဟုမျှော်လင့်ပါသည်။