PHP တွင်စစ်ထုတ်စက်များသည် file streams များသို့မဟုတ်အခြားဒေတာများကိုကိုင်တွယ်ရန်အလွန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်ရှိသောနည်းလမ်းတစ်ခုကိုပေးသည်။ စီးဆင်းမှု filter မှတဆင့်ကျွန်ုပ်တို့သည် input data ကိုအချိန်မှန်အတွက်လုပ်ဆောင်နိုင်ပြီးပြုပြင်နိုင်သည်။ ဤဆောင်းပါးတွင် Stream_get_Filters ကိုအသုံးပြုနည်းကို COPEN နှင့်ပေါင်းစပ်ပြီး function function ကိုအကောင်အထည်ဖော်ရန် FOWEN နှင့်ပေါင်းစပ်အသုံးပြုရမည်ကိုအသေးစိတ်လေ့လာမည်။
Stream filter များသည် PHP မှပေးသော file streams သို့မဟုတ်အခြား stream အချက်အလက်များကိုလုပ်ဆောင်ရန်ယန္တရားတစ်ခုဖြစ်သည်။ စာဖတ်ခြင်းကိုဖတ်ခြင်းသို့မဟုတ်ရေးသားခြင်းကိုဖတ်သည့်အခါဒေတာများကိုစစ်ထုတ်နိုင်သည်။ ဥပမာအားဖြင့်, ဒေတာချုံ့ခြင်း, စာဝှက်ခြင်း, ဇာတ်ကောင် encoding ပြောင်းလဲခြင်းနှင့်တူအောင် stream filter များကိုလည်းအသုံးပြုနိုင်သည်။
PHP သည် built-in stream filter များကိုထောက်ပံ့ပေးသည်။
zlib.inflate (decompression)
zlib.deflate (compression)
string.toupper (စာသားကိုစာလုံးအကြီးသို့ပြောင်းပါ)
stream_get_filters သည် PHP တွင်အလွန်အသုံးဝင်သောလုပ်ဆောင်မှုတစ်ခုဖြစ်သည်။ နောက်ဆက်တွဲကုဒ်များအတွက်အသုံးပြုရန်အတွက်မည်သည့်စစ်ထုတ်ကိရိယာများကို PHP သို့မည်သည့်စစ်ထုတ်စက်များကိုတင်နေသည်ကိုကြည့်ရှုရန်ကျွန်ုပ်တို့အသုံးပြုနိုင်သည်။
array stream_get_filters ( void )
ဒီ function မှာ parameters တွေကိုရှိပါတယ်။
အားလုံးရရှိနိုင် stream filters များပါ 0 င်သည်။
FOPEN သည် PHP တွင် function တစ်ခုဖြစ်ပြီးဖိုင်စီးကိုဖွင့်ရန်ဖြစ်သည်။ စာဖတ်ခြင်း, အရေးအသား, ဖိုင်တစ်ခုဖွင့်သောအခါ stream_filter_append function မှတဆင့် The Stream filter ကို file stream သို့ပူးတွဲနိုင်သည်။
resource fopen ( string $filename , string $mode )
resource stream_filter_append ( resource $stream , string $filtername , int $read_write [, mixed $params ] )
အောက်တွင်ကျွန်ုပ်တို့သည် Stream_get_Filters နှင့် fopen ကို ရိုးရှင်းသောပုံသက်သေနှင့်ပေါင်းစပ်ပြီးမည်သို့အသုံးပြုရမည်ကိုပြသပါမည်။ ကျွန်ုပ်တို့သည်စာသားအားလုံးကိုဖိုင်ရှိစာသားများကို string.toupper stream filter မှတဆင့်စာလုံးအကြီးသို့ပြောင်းပါမည်။
<?php
// ရရှိနိုင်သည့် stream filter အားလုံးကိုရယူပါ
$filters = stream_get_filters();
echo "ရရှိနိုင်သည့်စီးဆင်းမှု filter များ:\n";
print_r($filters);
// ဖိုင်ကိုဖွင့်ပါ
$filename = "test.txt";
$file = fopen($filename, 'r+');
// သေတမ်းစာ 'string.toupper' stream filter များကို file tsams မှလျှောက်ထားသည်
stream_filter_append($file, 'string.toupper');
// ဖိုင်ကိုဖတ်ပြီးပါ 0 င်သည့်အကြောင်းအရာကိုဖတ်ပါ(内容သေတမ်းစာ被转换为大写)
while (($line = fgets($file)) !== false) {
echo $line;
}
// ဖိုင်စီးကိုပိတ်ပါ
fclose($file);
?>
ပထမ ဦး စွာရရှိနိုင်သည့် stream filter များနှင့်၎င်းတို့အား output လုပ်ရန် stream_get_filters ကို သုံးပါ။
ထို့နောက် FORT.TXT ကို fopen မှတဆင့်ဖွင့်ပြီး R + Mode ဖြင့်ရေးပါ။
string_filter_append function ကိုသုံးရန် transupper stream filter ကိုသုံးပါ။ ဆိုလိုသည်မှာဖိုင်မှဖတ်ရန်အဘယ်အရာကိုအလိုအလျောက်ပြောင်းလဲခြင်းကိုဆိုလိုသည်။
ထို့နောက်ကျွန်ုပ်တို့သည် fgets function ကိုလိုင်းဖြင့်ဖတ်ရန်နှင့်ပြောင်းလဲထားသောအရင်းအနှီးများကိုမျက်နှာပြင်သို့ထုတ်လွှင့်သည်။
နောက်ဆုံးအနေဖြင့် FCLOESESOSE မှတစ်ဆင့်ဖိုင်စီးကိုပိတ်ပါ။
test.txt ဖိုင်၏အကြောင်းအရာများသည်အောက်ပါအတိုင်းဖြစ်သည်ဆိုပါက -
Hello world!
This is a test.
ထိုအခါ program output ကိုဖြစ်လိမ့်မည်:
HELLO WORLD!
THIS IS A TEST.
File streaming ဖိုင်များအပြင် PHP သည် URL များကိုစီးဆင်းနေသော filter များကိုလည်းထောက်ပံ့သည်။ ဥပမာအားဖြင့်ကျွန်ုပ်တို့သည် HTTP တောင်းဆိုထားသောဒေတာများကိုပြုလုပ်ရန် stream filter တစ်ခုကိုသုံးနိုင်သည်။ ဤတွင် FOGEN မှတဆင့် URL တစ်ခုကိုမည်သို့ဖွင့်ပြီးစီးပွါးရေး filter ဖြင့်ပြုလုပ်နိုင်သည်ကိုပြသသည့်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
<?php
// အသုံးပြု fopen ဖွင့်လှစ် URL,အသုံးပြု gitbox.net ဒိုမိန်းအမည်အဖြစ်
$url = "http://gitbox.net/path/to/resource";
$stream = fopen($url, 'r');
// သေတမ်းစာ 'string.toupper' စီးဆင်းမှု filter ကိုလျှောက်ထားသည် URL ဒေတာစီးဆင်းမှု
stream_filter_append($stream, 'string.toupper');
// ဖတ်ရန်နှင့် output ဒေတာ
while (($line = fgets($stream)) !== false) {
echo $line;
}
// စီးကိုပိတ်ပါ
fclose($stream);
?>
သတ်မှတ်ထားသော URL ( gitbox.net domain name name) ကိုဖွင့်ပါ။
URL မှရရှိသောအချက်အလက်များသည် output တွင်စာလုံးအကြီးသို့ကူးပြောင်းနိုင်ရန် string.toupper stream filter ကို URL ဒေတာစီးသို့သက်ဆိုင်သည်။
လိုင်းနှင့် output အားဖြင့်ဒေတာလိုင်းကိုဖတ်ပါ။
နောက်ဆုံးတော့စီးကိုပိတ်ပါ။
stream filter များကိုဖိုင်များအတွက်သာအသုံးပြုနိုင်သည်သာမကကွန်ရက်စီးဆင်းမှုများ, ပိုက်လိုင်းစီးဆင်းမှုစသည်တို့ကိုလည်းဖြစ်သည်။
Stream filter များကိုအသုံးပြုသောအခါစွမ်းဆောင်ရည်ကိုအထူးဂရုပြုပါ။
ပိုမိုရှုပ်ထွေးသောအပြောင်းအလဲနဲ့အတွက် filter များစွာကိုပေါင်းစပ်နိုင်သည်။ ဥပမာအားဖြင့်, ပထမ ဦး စွာချုံ့ပြီးတော့ encrypt ။
ဤဆောင်းပါးမှတစ်ဆင့် Stream Filters များကိုအကောင်အထည်ဖော်ရန် fopen နှင့်ပေါင်းစပ်ထားသော stream_get_filters function ကိုမည်သို့အသုံးပြုရမည်ကိုလေ့လာခဲ့သည်။ stream filter များသည် files များသို့မဟုတ်ကွန်ယက်အချက်အလက်များကိုအချိန်မှန်တွင်လုပ်ဆောင်ရန်အတွက်အလွန်အစွမ်းထက်။ ပြောင်းလွယ်ပြင်လွယ်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည်ရိုးရှင်းသောစာသားပြောင်းလဲခြင်းသို့မဟုတ်ပိုမိုရှုပ်ထွေးသောအချက်အလက်ပြုပြင်ခြင်းဆိုသည်မှာဖြစ်စေ,