PHP တွင် streaming သည် files များ, network connection များနှင့်အခြား data streams အမျိုးမျိုးကိုကိုင်တွယ်ရန်ခွင့်ပြုသည့်အလွန်အစွမ်းထက်သောအယူအဆဖြစ်သည်။ ဤစီးဆင်းမှုများကိုပြုပြင်သည့်အခါကျွန်ုပ်တို့သည်အချက်အလက်များကိုဖတ်ရှုခြင်းသို့မဟုတ်ရေးသားခြင်းမပြုမီသို့မဟုတ်မရေးမီပြုပြင်မွမ်းမံရန်၎င်းတို့ကို filter လုပ်ရန်လိုအပ်နိုင်သည်။ PHP သည် built-in filter များကိုများစွာပေးသည်။ stream_get_filters function ကိုဒီရည်ရွယ်ချက်အတွက်ဖန်တီးထားပြီးရရှိနိုင်သည့် stream filters အားလုံးကိုရရန်ခွင့်ပြုသည်။
Stream_get_Filters သည် PHP built-in function တစ်ခုဖြစ်ပြီးလက်ရှိမှတ်ပုံတင်ထားသောစစ်မြေပြင်များ၏အမည်များအားလုံးကိုပြန်လည်ပေးအပ်သည်။ ၎င်းကိုဖြည့်ဆည်းပေးနိုင်သည့် debug များကို debug လုပ်ရန် (သို့) developer များအား PHP ပတ်ဝန်းကျင်သို့မည်သည့်စစ်ထုတ်စက်များကို 0 င်ရောက်နိုင်သည်ကိုနားလည်စေရန်အသုံးပြုနိုင်သည်။
array stream_get_filters(void)
ဤလုပ်ဆောင်ချက်သည်မည်သည့် parameters တွေကိုလက်မခံပါ။
မှတ်ပုံတင်ထားသော filter အမည်များပါ 0 င်သည်။
PHP တွင် stream filter ကို stream_filter_register function ဖြင့်မှတ်ပုံတင်ထားသည်။ filter များကို file streams များ, network streams သို့မဟုတ်အခြား streams များကို process လုပ်ရန်အသုံးပြုနိုင်သည်။ stream filter များကိုများသောအားဖြင့် transcoding, encryption နှင့် decryption လုပ်ငန်းများအတွက်အသုံးပြုသည်။
အောက်ပါကုဒ်များသည်မှတ်ပုံတင်ထားသောစစ်ထုတ်ကိရိယာများရရန် stream_get_filters function ကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// အားလုံးမှတ်ပုံတင် stream filter များကိုရယူပါ
$filters = stream_get_filters();
// အားလုံး filter များ output
echo "<pre>";
print_r($filters);
echo "</pre>";
?>
ဤကုဒ်သည်လက်ရှိမှတ်ပုံတင်ထားသောစစ်ထုတ်စက်များအားလုံးတွင်စာရင်းပြုစုထားသည်။ ဤလုပ်ဆောင်မှုဖြင့် PHP တွင်မည်သည့်စစ်ထုတ်စက်များကိုသင်အသုံးပြုနိုင်သည်ကိုသင်ရှင်းရှင်းလင်းလင်းသိနိုင်သည်။
အောက်ပါဥပမာသည် filter တစ်ခုလျှောက်ထားရန် stream_filter_append နှင့် stream_get_filters များကိုမည်သို့အသုံးပြုရမည်ကိုပြသသည်။
<?php
// ဖိုင်စီးကိုဖွင့်ပါ
$handle = fopen('sample.txt', 'r');
// ရရှိနိုင်သည့် filter အားလုံးကိုကြည့်ပါ
$filters = stream_get_filters();
echo "<pre>";
print_r($filters);
echo "</pre>";
// ဒေတာ filter ကို:အကြောင်းအရာများကိုအရင်းအနှီးသို့ပြောင်းပါ
stream_filter_append($handle, 'string.toupper');
// filtered data ကိုဖတ်နှင့်ပြသ
echo fread($handle, 1024);
fclose($handle);
?>
ဤဥပမာတွင်ဖိုင်စီးကိုဖွင့်ပြီးဖိုင်အကြောင်းအရာများကိုစာလုံးအကြီးသို့ပြောင်းရန် string.toupper filter ကိုအသုံးပြုပါ။ stream_get_filters ဖြင့်မည်သည့်စစ်ထုတ်ကိရိယာများကိုရရှိနိုင်ပါသည်နှင့်ထို့နောက် stream အချက်အလက်များကို process လုပ်ရန်သင့်လျော်သော filter ကိုရွေးချယ်ပါ။
PHP တွင် stream filter များကိုအသုံးပြုခြင်းသည်အလွန်ပြောင်းလွယ်ပြင်လွယ်ရှိပြီးပြ problems နာများကိုဖြေရှင်းရန်ကြုံတွေ့ရနိုင်သည်။ stream_get_filters ကို အသုံးပြုခြင်းသည်မည်သည့်စစ်ထုတ်စက်များကိုတင်ဆောင်နေပြီးဖြစ်သည်ကိုနားလည်ရန်ကူညီနိုင်သည်။
<?php
// လက်ရှိမှတ်ပုံတင်ထားသောစစ်ထုတ်စက်များကိုကြည့်ရန်
$filters = stream_get_filters();
// output ကို debug သတင်းအချက်အလက်
if (in_array('string.toupper', $filters)) {
echo "string.toupper filter ကိုမှတ်ပုံတင်\n";
} else {
echo "string.toupper filter ကိုမှတ်ပုံတင်မထားပါ\n";
}
?>
ဒီကုဒ်သည် string.toupper filter ကို loaded လျှင်စစ်ဆေးသည်။ အကယ်. filter ကိုမှတ်ပုံတင်မထားဘူးဆိုရင်အကြောင်းပြချက်ကိုထပ်မံစုံစမ်းစစ်ဆေးနိုင်မယ်။ ၎င်းသည်စီးဆင်းမှု filter application တွင်ဖြစ်ပေါ်သောမည်သည့်ပြ issues နာကိုမဆို debug ကိုကူညီသည်။
URL domain name ကို Gittain Domain Name ကို Gittain Name ကိုအစားထိုးရန်လိုအပ်သည်ဆိုပါစို့။ EBL filter တစ်ခုရှိမရှိအတည်ပြုရန် Stream_get_Filters ကို သုံးနိုင်သည်ဆိုပါစို့။ ဒီနေရာတွင်ဒိုမိန်းအမည်ကိုအစားထိုးရန်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// တစ် ဦး ပါ 0 င်ပါ URL ဖတ်စာ
$text = "ဝက်ဘ်ဆိုက်သို့သွားပါ http://example.com သို့မဟုတ် https://www.example.com ပိုမိုသိရှိလိုပါကရယူပါ";
// အဖြစ်ဒိုမိန်းအမည်ကိုအစားထိုးလိုက်ပါ gitbox.net
$modifiedText = preg_replace('/https?:\/\/[a-zA-Z0-9.-]+/', 'http://gitbox.net', $text);
echo $modifiedText;
?>
ဤကုဒ်သည် URL domain name ကိုစာသားအတွင်းရှိ Gitbox.net ဖြင့် GitBox.net ဖြင့်အစားထိုးသည်။
stream_get_filters function ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်လက်ရှိမှတ်ပုံတင်ထားသောစစ်ထုတ်စက်များကိုအလွယ်တကူရယူနိုင်သည်။ Debugging လုပ်စဉ်အတွင်း filv filter ကိုအသုံးပြုခြင်းသို့မဟုတ်စစ်ထုတ်ခြင်းရှိမရှိစစ်ဆေးခြင်းရှိမရှိကအလွန်အဆင်ပြေသောအင်္ဂါရပ်များကိုပေးသည်။ ထို့အပြင် stream filter များနှင့်အခြား debugging tools များပေါင်းစပ်ထားသောကိရိယာများသည် developer များက developer များအားအချက်အလက်များကိုပိုမိုထိရောက်စွာစီမံခန့်ခွဲနိုင်သည်။
ဤနည်းစနစ်များကိုကျွမ်းကျင်ပြီးနောက်သင်ဖွံ့ဖြိုးမှုစွမ်းရည်ကိုတိုးတက်စေရန် PHP ၏စီးဆင်းမှုကိုပိုမိုလွယ်ကူစွာဖြည့်ဆည်းပေးနိုင်လိမ့်မည်။