လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Stream_get_Filters နှင့် stream_filter_remove ၏ပူးတွဲအသုံးပြုမှုဥပမာ

Stream_get_Filters နှင့် stream_filter_remove ၏ပူးတွဲအသုံးပြုမှုဥပမာ

gitbox 2025-05-28

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

1 ။ စီးဆင်းမှု filter ဆိုတာဘာလဲ။

Stream filter သည်ချောင်းများအတွက်အသုံးချသည့်ယန္တရားတစ်ခုဖြစ်သည်။ ဥပမာအားဖြင့်, ဖိုင်စီးပေါ်ရှိအခြားစစ်ဆင်ရေးများကိုစာဝှက်ရန်, စာဝှက်ခြင်း, decompress နှင့်အခြားလုပ်ငန်းများကိုစာဝှက်ရန် stream filter တစ်ခုကိုသုံးနိုင်သည်။

PHP သည် built-in stream filter များအမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။ အသုံးပြုသူများသည် stream filter များကိုလည်းစိတ်ကြိုက်ပြုလုပ်နိုင်သည်။ string.toupper ကဲ့သို့သောဘုံစစ်ထုတ်ကိရိယာများသည်ဒေတာများကို stream တစ်ခုတွင်စာလုံးများအဖြစ်ပြောင်းလဲနိုင်သည်။

2 ။ stream_get_filters function ကို

Stream_get_Filters () function ကို PHP တွင်ရရှိနိုင်သည့် stream filds အားလုံး၏စာရင်းကိုပြန်ပို့သည်။ ဤလုပ်ဆောင်ချက်သည် filter အမည်များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်လည်ရောက်ရှိစေသည်။

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

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

3 ။ stream_filter_remove function ကို

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

 $filter = stream_filter_append($stream, 'string.toupper');
stream_filter_remove($filter);

ဤကုဒ်တွင် stream_filter_append () သည်ဒေတာများကိုစာလုံးအကြီးများသို့ပြောင်းလဲစေသည့် LAEM $ စီး ထဲသို့ထည့်ရန်အသုံးပြုသည်။ ထို့နောက်ဤ filter ကို steam_filter_remove မှတဆင့်ဖယ်ရှားပေးသည်။

4 ။ လက်တွေ့ကျတဲ့ဥပမာ - stream_get_filters နှင့် stream_filter_remove ပေါင်းစပ်ခြင်း

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

နမူနာကုဒ်

 <?php
// စာသားစီးကိုဖွင့်ပါ
$stream = fopen('php://temp', 'r+');
fwrite($stream, "Hello World! This is a test message.");
rewind($stream);

// အားလုံးရရှိနိုင် filter များကိုရယူပါ
$filters = stream_get_filters();
echo "Available filters:\n";
print_r($filters);

// filter ကိုသုံးပါ,အကြောင်းအရာများကိုအရင်းအနှီးသို့ပြောင်းပါ
$filter = stream_filter_append($stream, 'string.toupper');

// စီးဆင်းမှုအတွက်ဖတ်နှင့် output ကို data(ရှိပြီးသားမြို့တော်၌တည်၏)
rewind($stream);
echo "After applying 'string.toupper' filter:\n";
echo fread($stream); // ထုတ်လုပ်ခြင်း: HELLO WORLD! THIS IS A TEST MESSAGE.

// filter ကိုဖယ်ရှားပါ
stream_filter_remove($filter);

// 重新စီးဆင်းမှုအတွက်ဖတ်နှင့် output ကို data(မူရင်းစာသားကိုပြန်ယူပါ)
rewind($stream);
echo "\nAfter removing the filter:\n";
echo fread($stream); // ထုတ်လုပ်ခြင်း: Hello World! This is a test message.
?>

code parsing

  1. Stream ကိုဖွင့်ပါfopen မှတဆင့်ယာယီမှတ်ဉာဏ်စီးဆင်းမှုကိုဖွင့်ပြီး 'PHP: // Temp', 'r +' ကို ဖွင့်ပြီးစာသားအချက်အလက်အချို့ကိုရေးပါ။

  2. ရရှိနိုင်သည့် filter အားလုံးကိုရယူပါRequest_get_Filters () ကို သုံးရန်နှင့်၎င်းတို့အားပုံနှိပ်ထုတ်ဝေသောဖြည့်ဆည်းရန်အသုံးပြုပါ။ ဤစာရင်းမှတစ်ဆင့်သင်လျှောက်ထားလိုသောစစ်ထုတ်စက်များကိုရွေးချယ်နိုင်သည်။

  3. DESTSS : string_filter_append () function ကိုသုံးပါ။ စာသားအားလုံးကိုစာလုံးအကြီးသို့ပြောင်းရန်အတွက် stringper_toupper filter ကိုထည့်ပါ။

  4. Remove filter : stream_filter_remove () ကို filter ကိုဖယ်ရှားရန် filter ကိုဖယ်ရှားရန် filter ကိုဖယ်ရှားရန်အသုံးပြုပါ။

  5. output data : filter ကိုလျှောက်ထားခြင်းနှင့်ဖယ်ရှားခြင်းပြီးနောက် filter fulform ပြောင်းလဲမှုများကိုပြသရန် filter မှတဆင့်စမ်းချောင်းတွင်အချက်အလက်များကိုထုတ်လွှင့်သည်။

Code output ကိုဥပမာ -

 Available filters:
Array
(
    [0] => string.toupper
    [1] => convert.iconv.utf-8.utf-16
    [2] => convert.iconv.utf-16.utf-8
    [3] => string.rot13
    [4] => string.lower
    ...
)

After applying 'string.toupper' filter:
HELLO WORLD! THIS IS A TEST MESSAGE.

After removing the filter:
Hello World! This is a test message.

ရှင်းလင်းဖေါ်ပြ

  1. stream_get_filters () function ကို function ကို stream ဒေတာကို process လုပ်ဖို့တိုက်ရိုက်အသုံးပြုနိုင်သည့်ရရှိနိုင်သည့်စစ်ထုတ်စက်များကိုပြန်ပို့သည်။

  2. String.toupper filter သည် stream ရှိအရာအားလုံးကိုစာလုံးကြီးများသို့ပြောင်းလဲပေးသည်။

  3. stream_filter_remove () လုပ်ဆောင်ချက်အရ function ကို function ကိုဖယ်ရှားပြီးနောက်စီးဆင်းမှုရှိအကြောင်းအရာများသည်၎င်း၏မူလပြည်နယ်သို့ပြန်သွားသည်။

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

stream_get_filters နှင့် stream_filter_remove မှတစ်ဆင့်ကျွန်ုပ်တို့သည်စီးဆင်းမှုအချက်အလက်များ၏လုပ်ငန်းစဉ်ကိုပြောင်းလွယ်ပြင်လွယ်ထိန်းချုပ်နိုင်သည်။ ဤလုပ်ဆောင်ချက်နှစ်ခုသည် dynamically dynamically dynamically ပြောင်းခြင်းကိုပြောင်းလဲစေသောအချို့သောအခြေအနေများတွင်အလွန်အသုံးဝင်သည်။ သင်သည် Runtime တွင်ကွဲပြားသောစစ်ထုတ်စက်များကိုရွေးချယ်နိုင်သည်သို့မဟုတ်မူရင်းအချက်အလက်များကိုပြန်လည်ရယူရန်အချို့အခြေအနေများအောက်တွင်၎င်းတို့အားဖယ်ရှားနိုင်သည်။