လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_get_filters နှင့် stream_filter_append ကိုဘယ်လိုပေါင်းစပ်မလဲ။

stream_get_filters နှင့် stream_filter_append ကိုဘယ်လိုပေါင်းစပ်မလဲ။

gitbox 2025-05-28

PHP တွင် Streams သည်ဖိုင်များ, ကွန်ယက်ချိတ်ဆက်မှုများ, input နှင့် output output များကိုကိုင်တွယ်ရန်အဓိကယန္တရားတစ်ခုဖြစ်သည်။ PHP သည်အားကောင်းသော stream processing interface ကိုထောက်ပံ့ပေးသည်။ အထူးသဖြင့်သင်စမ်းချောင်းတစ်ခုတွင်အချက်အလက်များကို filter လုပ်ရန်နှင့်လုပ်ငန်းစဉ်တွင်လုပ်ဆောင်ရန်လိုအပ်သည့်အခါ stream_get_filters နှင့် stream_filters နှင့် stream_filter_append သည်အလွန်အသုံးဝင်သောကိရိယာများဖြစ်သည်။

1 ။ stream_get_filters function ကိုခြုံငုံသုံးသပ်ချက်

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

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

အထက်ပါကုဒ်သည်မှတ်ပုံတင်ထားသော stream filters အားလုံးကိုစာရင်းပြုစုလိမ့်မည်။ အချက်အလက်များကို encoding, encryption, compression စသည်စသည်တို့ကဲ့သို့သော streaming data များကိုကွဲပြားစွာပြုလုပ်ရန်ဤစစ်ထုတ်စက်များကိုသင်အသုံးပြုနိုင်သည်။

2 ။ stream_filter_append function ကိုခြုံငုံသုံးသပ်ချက်

stream_filter_append function က filter ကိုသတ်မှတ်ထားသောစမ်းချောင်းတစ်ခုသို့ဖြည့်ရန်ခွင့်ပြုသည်။ ဤလုပ်ဆောင်ချက်နှင့်အတူကျွန်ုပ်တို့သည်စမ်းချောင်းများကိုတကယ့်အချိန်အတွက်အချက်အလက်များကို process လုပ်ရန် Open SCRES သို့ဖြည့်ဆော့ဖ်ဝဲများကိုသုံးနိုင်သည်။ ဤလုပ်ဆောင်ချက်၏ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -

 stream_filter_append($stream, $filtername, $read_write = STREAM_FILTER_READ, $params = null);
  • $ stream : နောက်ထပ်စစ်ထုတ်ကိရိယာများလိုအပ်သည့် stream အရင်းအမြစ်။

  • $ forpilame : filter ၏အမည်။

  • $ Read_write : filter ကိုဖတ်သည့် stream တစ်ခု, ရေးချောင်းတစ်ခု,

  • $ params : အပို parameters တွေကို filter ကိုဖြတ်သန်း။

3 ။ stream data processing ကိုအကောင်အထည်ဖော်ရန် stream_get_filters နှင့် stream_filter_append ကို သုံးပါ

PHP, stream_get_filters နှင့် stream_filter_aptend အတွက် stream data ကိုထိရောက်စွာလုပ်ဆောင်ရန်လိုအပ်သည့်အခါသင်အတူတကွလိုအပ်ချက်များအရမှန်ကန်သော filter ကိုရွေးချယ်ရန်ခွင့်ပြုပါ။

file streams များကို stream_get_filters နှင့် stream_filter_append ကို အသုံးပြု. ဥပမာတစ်ခုမှာ -

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

// ဖိုင်စီးကိုဖွင့်ပါ
$file = fopen('example.txt', 'r+');
if (!$file) {
    die('ဖိုင်ကိုဖွင့ ်. မရပါ');
}

// ဒေတာများကိုစာလုံးအကြီးသို့ပြောင်းပါ(ဒီ filter ကိုတည်ရှိသည်ယူဆ)
$filter_name = 'string.toupper';

// filter ကိုတည်ရှိရှိမရှိစစ်ဆေးပါ
if (in_array($filter_name, $filters)) {
    // file ကို filter သို့ filter ကိုပူးတွဲပါ
    stream_filter_append($file, $filter_name, STREAM_FILTER_READ);
    echo "စစ်ထုတ်ကိရိယာများကိုထည့်သွင်းထားသည် '$filter_name' fileweam ပူးတွဲပါ\n";
} else {
    echo "စိမ့်ထွက် '$filter_name' မတည်ရှိပါဘူး\n";
}

// ဖိုင်ဒေတာနှင့် output ကိုဖတ်ပါ
while (($line = fgets($file)) !== false) {
    echo $line;
}

// ဖိုင်စီးကိုပိတ်ပါ
fclose($file);
?>

အထက်ပါကုဒ်တွင် Stream_get_Filters များကို ရရှိနိုင်သည့် stream filter များအားလုံးရရှိရန်အတွက်ပထမ ဦး ဆုံးအသုံးပြုသည်။ ထို့နောက် string.toupper ဟုခေါ်သော filter ကိုစစ်ဆေးပါ။ filter ကိုတည်ရှိပါကဖိုင်အတွင်းရှိအချက်အလက်များသို့အချက်အလက်အားလုံးကိုစာလုံးများသို့ပြောင်းရန် stream_filter_append သုံး. file stream သို့ဖြည့်စွက်ပါ။

4 ။ ထိရောက်သောဒေတာအပြောင်းအလဲနဲ့

stream filter များဖြင့်အချက်အလက်များကိုမှတ်ဉာဏ်ထဲမထည့်ဘဲအချက်အလက်အပြောင်းအလဲများကိုလွှင့်ခြင်းမရှိဘဲအချက်အလက်များကိုပြုပြင်ခြင်းများပြုလုပ်နိုင်သည့်အချက်အလက်များကိုပြုပြင်ခြင်းပြုလုပ်နိုင်သည်။ အချက်အလက်အမြောက်အများကိုပြုပြင်ရန်အတွက်အထူးထိရောက်စွာဖြစ်သည်။ ဥပမာအားဖြင့်, ကြီးမားသောဖိုင်များကိုပြုပြင်သည့်အခါ stream filter များကိုအသုံးပြုခြင်းသည်ဒေတာလိုင်းကိုလိုင်းဖြင့်ဖတ်နိုင်ပြီးဖိုင်တစ်ခုလုံးကိုမှတ်ဉာဏ်ထဲသို့ 0 င်ရောက်ခြင်း,

5 ။ လက်တွေ့ကျသောလျှောက်လွှာ - ကွန်ယက်ဒေတာအပြောင်းအလဲနဲ့

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

 <?php
// တစ်ခုဖွင့်လှစ် gitbox.net ကွန်ယက်ချိတ်ဆက်မှု
$fp = fopen("tcp://gitbox.net:80", "r+");
if (!$fp) {
    die("ဆာဗာကို ဆက်သွယ်. မရပါ");
}

// 添加加密စိမ့်ထွက်
$filter_name = 'mcrypt.des';
stream_filter_append($fp, $filter_name, STREAM_FILTER_READ);

// စာဝှက်ထားတဲ့ဒေတာတွေကိုဖတ်ပါ
$data = fread($fp, 1024);
echo "စာဝှက်ထားတဲ့ဒေတာ: " . $data;

// ဆက်သွယ်မှုကိုပိတ်ပါ
fclose($fp);
?>

ဤဥပမာတွင် Gitbox.net သို့ TCP ဆက်သွယ်မှုကိုဖွင့်ပြီးစီးဆင်းရန်စာဝှက်စနစ် filter ကိုသုံးပါ။ ၎င်းသည်ကွန်ယက်ဒေတာထုတ်လွှင့်သည့်အခါဒေတာလုံခြုံရေးကိုသေချာစေသည်။

stream_get_filters နှင့် stream_filter_append ပေါင်းစပ်ခြင်းဖြင့် PHP developer များက streaming developer များက streaming data များကိုပြောင်းလွယ်ပြင်လွယ်အချက်အလက်များကိုပြောင်းလဲစေနိုင်သည်။