လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_filter_append ဖြင့်ရိုးရှင်းသောစာသားပြောင်းလဲခြင်းစစ်ထုတ်ရန်မည်သို့ဖန်တီးရမည်နည်း။

stream_filter_append ဖြင့်ရိုးရှင်းသောစာသားပြောင်းလဲခြင်းစစ်ထုတ်ရန်မည်သို့ဖန်တီးရမည်နည်း။

gitbox 2025-09-29

stream_filter_append ဖြင့်ရိုးရှင်းသောစာသားပြောင်းလဲခြင်းစစ်ထုတ်ရန်မည်သို့ဖန်တီးရမည်နည်း။

PHP တွင် stream_filter_append () function သည် filter ကို filter တစ်ခုနှင့်ချိတ်ဆက်ရန်ခွင့်ပြုသည်။ ဤဆောင်းပါးသည် Stream_Filter_append () ကို အသုံးပြုနည်း () ရိုးရှင်းသောစာသားပြောင်းခြင်းစစ်ထုတ်ခြင်းများကိုဖန်တီးရန်, စမ်းချောင်းထဲရှိအချက်အလက်များကိုစီမံပြီးစာလုံးအကြီးများပြောင်းလဲခြင်း,

stream_filter_append ဆိုတာဘာလဲ။

steam_filter_append () သည် PHP built-in function တစ်ခုဖြစ်သည်။ ၎င်းသည် filter တစ်ခုသို့ filter တစ်ခုသို့ဖြည့်စွက်ရန်ခွင့်ပြုသည်။ filter ၏ function သည် Modinification, ပြောင်းလဲခြင်း, ချုံ့ခြင်းစသည်ဖြင့်အချက်အလက်များကိုလုပ်ဆောင်ရန်ဖြစ်သည်။

အခြေခံ syntax

 <span><span><span class="hljs-title function_ invoke__">stream_filter_append</span></span><span>(resource </span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$filtername</span></span><span>, </span><span><span class="hljs-keyword">int</span></span><span> </span><span><span class="hljs-variable">$read_write</span></span><span> = STREAM_FILTER_READ, </span><span><span class="hljs-keyword">mixed</span></span><span> </span><span><span class="hljs-variable">$params</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">bool</span></span><span>
</span></span>
  • $ stream : filter ကိုပူးတွဲရန်စီးဆင်း။

  • $ forportame : filter-in filter တစ်ခုသို့မဟုတ်စိတ်ကြိုက် filter တစ်ခုဖြစ်နိုင်သော filter-in filter တစ်ခုဖြစ်နိုင်သည်။

  • $ Read_write : စမ်းချောင်းကိုဖတ်ရန်သို့မဟုတ်ရေးရန်ရှိမရှိသတ်မှတ်သည်။ Steam_Filter_read သည် Read Stream ကိုကိုယ်စားပြုသည်။

  • $ params : parameters တွေကို filter သို့ဖြတ်သန်း (optional ကို) ။

ရိုးရှင်းသောစာသားပြောင်းလဲခြင်း filter ကိုဖန်တီးပါ

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

အဆင့် 1 - စိတ်ကြိုက် filter တစ်ခုကိုသတ်မှတ်ပါ

ပထမ ဦး စွာကျွန်ုပ်တို့သည်ရိုးရှင်းသော filter class တစ်ခုကိုဖန်တီးရန်လိုအပ်သည် PHP_USER_FILER CLASS ကိုအမွေဆက်ခံရန်နှင့်၎င်း၏နည်းလမ်းများကိုအကောင်အထည်ဖော်ရန်လိုအပ်သည်။ ဤ filter သည် text မှစာသားကိုစာလုံးအကြီးသို့ပြောင်းလိမ့်မည်။

 <span><span><span class="hljs-class"><span class="hljs-keyword">class</span></span></span><span> </span><span><span class="hljs-title">UppercaseFilter</span></span><span> </span><span><span class="hljs-keyword">extends</span></span><span> </span><span><span class="hljs-title">php_user_filter</span></span><span> {
    </span><span><span class="hljs-keyword">public</span></span><span> </span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">filter</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$in</span></span></span><span>, </span><span><span class="hljs-variable">$out</span></span><span>, &amp;</span><span><span class="hljs-variable">$consumed</span></span><span>, </span><span><span class="hljs-variable">$closing</span></span><span>) {
        </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$bucket</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_bucket_make_writeable</span></span><span>(</span><span><span class="hljs-variable">$in</span></span><span>)) {
            </span><span><span class="hljs-comment">// data ကို streams အတွက်စာလုံးအကြီးသို့ပြောင်းပါ</span></span><span>
            </span><span><span class="hljs-variable">$bucket</span></span><span>-&gt;data = </span><span><span class="hljs-title function_ invoke__">strtoupper</span></span><span>(</span><span><span class="hljs-variable">$bucket</span></span><span>-&gt;data);
            </span><span><span class="hljs-comment">// ပစ်မှတ်စီးမှကူးပြောင်းဒေတာ output ကို output</span></span><span>
            </span><span><span class="hljs-title function_ invoke__">stream_bucket_append</span></span><span>(</span><span><span class="hljs-variable">$out</span></span><span>, </span><span><span class="hljs-variable">$bucket</span></span><span>);
        }
        </span><span><span class="hljs-keyword">return</span></span><span> PSFS_PASS_ON;
    }
}
</span></span>

ဤအတန်းတွင် filter () နည်းလမ်းသည်အရေးအကြီးဆုံးအစိတ်အပိုင်းဖြစ်သည်။ ၎င်းသည် input stream ၏အချက်အလက်များကိုလက်ခံပြီး၎င်းကိုစာလုံးကြီးသို့ပြောင်းပါလိမ့်မည်။

အဆင့် 2. filter ကိုမှတ်ပုံတင်ပါ

ထို့နောက်ကျွန်ုပ်တို့သည် PHP ပတ်ဝန်းကျင်သို့မှတ်ပုံတင်ရန် steam_filter_register () function ကိုအသုံးပြုရန်လိုအပ်သည်။

 <span><span><span class="hljs-title function_ invoke__">stream_filter_register</span></span><span>(</span><span><span class="hljs-string">"uppercase"</span></span><span>, </span><span><span class="hljs-string">"UppercaseFilter"</span></span><span>) </span><span><span class="hljs-keyword">or</span></span><span> </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Filter registration failed"</span></span><span>);
</span></span>

ဒီအဆင့်ကတဆင့် ExpercaseFileter ကို US Stream အပြောင်းအလဲနဲ့သုံးဖို့ စာလုံးအကြီး လို့ခေါ်တဲ့ filter တစ်ခုအနေနဲ့မှတ်ပုံတင်တယ်။

အဆင့် 3: စစ်ထုတ်ကိရိယာများထည့်ရန် steam_filter_append () ကိုသုံးပါ

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

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// filter ကိုမှတ်ပုံတင်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">stream_filter_register</span></span><span>(</span><span><span class="hljs-string">"uppercase"</span></span><span>, </span><span><span class="hljs-string">"UppercaseFilter"</span></span><span>) </span><span><span class="hljs-keyword">or</span></span><span> </span><span><span class="hljs-keyword">die</span></span><span>(</span><span><span class="hljs-string">"Filter registration failed"</span></span><span>);

</span><span><span class="hljs-comment">// ဖိုင်စီးကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$stream</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"example.txt"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>);

</span><span><span class="hljs-comment">// custom conding filter ကို file stream သို့ပူးတွဲပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">stream_filter_append</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>, </span><span><span class="hljs-string">"uppercase"</span></span><span>, STREAM_FILTER_READ);

</span><span><span class="hljs-comment">// ဖိုင်အကြောင်းအရာနှင့် output ကိုဖတ်ပါ</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$line</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fgets</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>)) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$line</span></span><span>;
}

</span><span><span class="hljs-comment">// ဖိုင်စီးကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

အထက်ပါဥပမာတွင်ကျွန်ုပ်တို့သည်ဥပမာအမည်ရှိ thange.txt ဖိုင်ကိုဖွင့်ပြီး filter filter ကို file stream သို့ပူးတွဲပါ။ စမ်းချောင်းတွင်အချက်အလက်များကိုကျွန်ုပ်တို့ဖတ်သည့်အခါတိုင်း filter သည်၎င်းကိုစာလုံးအကြီးများသို့အလိုအလျောက်ပြောင်းလဲပြီး၎င်းကိုထုတ်ယူသည်။

အဆင့် 4: စမ်းသပ်မှုနှင့်အတည်ပြုခြင်း

ဥပမာအားဖြင့် file ထဲရှိအကြောင်းအရာသည်အောက်ပါအတိုင်းဖြစ်သည်ဟုယူဆပါ -

 <span><span>hello world
</span><span><span class="hljs-keyword">this</span></span><span> </span><span><span class="hljs-keyword">is</span></span><span> a test.
</span></span>

အထက်ပါကုဒ်ကိုဖွင့်ပြီးနောက်, output ကိုဖြစ်လိမ့်မည်:

 <span><span>HELLO WORLD
THIS IS </span><span><span class="hljs-selector-tag">A</span></span><span> TEST.
</span></span>

သင်မြင်နိုင်သည့်အတိုင်းစာသားအားလုံးကိုစာလုံးအကြီးများသို့ကူးပြောင်းထားသည်။

အကျဉ်းချုပ်

stream_filter_append () အတွက်အချက်အလက်များကိုအချိန်မှန်ပြုပြင်ရန်အတွက်အချိန်မှန်ပြုပြင်ခြင်းအောင်မြင်ရန်အတွက်ချောင်းများကိုအလွယ်တကူထည့်နိုင်သည်။ ဒီဆောင်းပါးမှာ input text ကိုစာလုံးအကြီးအဖြစ်ပြောင်းလဲသောရိုးရှင်းသောစာသားပြောင်းလဲခြင်းစစ်ထုတ်ခြင်းများကိုဖန်တီးပါပြီ။ Custom Filters နှင့် Streams ပေါင်းစပ်ခြင်းဖြင့် PHP သည်ရှုပ်ထွေးသောမြင်ကွင်းအမျိုးမျိုးနှင့်တွေ့ဆုံနိုင်သည့်အစွမ်းထက်သောအချက်အလက်များလုပ်ဆောင်နိုင်စွမ်းကိုထောက်ပံ့ပေးသည်။

ဤရိုးရှင်းသောဥပမာနှင့်အတူသင်၏ကိုယ်ပိုင် stream filter ကိုဖန်တီးရန် stream_filter_append () ကိုမည်သို့အသုံးပြုရမည်ကိုသင်နားလည်နိုင်လိမ့်မည်ဟုသင်နားလည်နိုင်သည်။