PHP တွင်၎င်းသည်ဖိုင်များ, ကွန်ယက်များ, မှတ်ဥာဏ်စသဖြင့်ဖတ်ရန် (သို့) စာဖတ်ခြင်းကိုဖတ်ရန်သို့မဟုတ်ရေးသားထားသောအခါအချက်အလက်များပြောင်းလဲခြင်းသို့မဟုတ်လုပ်ဆောင်နိုင်သည့်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ရိုးရှင်းသောဥပမာတစ်ခုပေးရန်ဖိုင်များကိုဖတ်ရှုသောအခါသင် compress ကိုအလိုအလျောက်ချုံ့ခြင်း,
PHP ပရိုဂရမ်များ၏စွမ်းဆောင်ရည်ကိုပိုမိုကောင်းမွန်စေရန်ပိုမိုကောင်းမွန်အောင်ပြုလုပ်နိုင်ရန်အတွက်လက်ရှိစနစ်တွင် Stream filter များကိုမည်သည့် stream များကိုရရှိနိုင်မည်ကိုသိရန်လိုအပ်သည်။ ထို့နောက်ကျွန်ုပ်တို့သည် stream_get_filters () function ကိုသုံးနိုင်သည်
Stream_get_Filters () သည် PHP တွင်ပါ 0 င်သော function တစ်ခုဖြစ်သည်။ ၎င်း၏အခြေခံအသုံးပြုမှုသည်အလွန်ရိုးရှင်းပါသည်။
$filters = stream_get_filters();
print_r($filters);
output သည်ဤကဲ့သို့သောပုံကိုကြည့်ကောင်းနိုင်သည်။
Array
(
[0] => string.rot13
[1] => string.toupper
[2] => string.tolower
[3] => convert.iconv.*
[4] => convert.*
[5] => zlib.*
[6] => bzip2.*
)
ဤစစ်ထုတ်စက်များ၏အမည်များကို stream_filter_append () သို့မဟုတ် stream_filter_prustepeal () သို့မဟုတ် stream_filter_proilter_proilter_proilter_propewe ()) ကိုစီး။ သုံးနိုင်သည်။
stream_get_filters () သည်စာရင်းတစ်ခုသာရှိသော်လည်း filter များကိုအသုံးပြုခြင်းသည်အချက်အလက်များပြုပြင်ခြင်းစီးဆင်းမှုစီးဆင်းမှုကိုသိသိသာသာလျှော့ချနိုင်သည်။
ဤတွင်အနည်းငယ်သာအကောင်းဆုံးသောအကြံပြုချက်များနှင့်ဥပမာအနည်းငယ်ရှိပါတယ်:
သင်ဖတ်ရှုရန်ဖိုင်အကြောင်းအရာကို compress သို့မဟုတ် encode လုပ်ရန်လိုအပ်ပါက၎င်းကိုလုပ်ဆောင်ရန် loop ကိုသုံးရန်မလိုပါ, သို့သော် filter ကိုတိုက်ရိုက်သုံးနိုင်သည်။
ဥပမာအားဖြင့်, အလိုအလျောက် gzip compressed ဖိုင်ရေးသားခြင်း:
$filename = 'example.txt.gz';
$fp = fopen($filename, 'w');
stream_filter_append($fp, 'zlib.deflate', STREAM_FILTER_WRITE);
fwrite($fp, 'ဤသည် compressed ခံရဖို့လိုအပ်ပါတယ်သောစာသားအပိုင်းအစတစ်ခုဖြစ်သည်。');
fclose($fp);
ဤကုဒ်သည်အချက်အလက်များကို gzip compression တွင် pegent.txt.gz ဖိုင်ကိုတိုက်ရိုက်ရေးသားခြင်း, လက်ဖြင့်ချုံ့ခြင်းနှင့်ဖိုင်အမျိုးအစားများစွာကိုရှောင်ရှားခြင်းနှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်နှင့်စွမ်းဆောင်ရည်ကိုတိုးတက်အောင်ပြုလုပ်ခြင်းဖြင့်အချက်အလက်များကိုတိုက်ရိုက်ရေးသားခဲ့သည်။
ITF-8 encoded text file ကို ISO-8859-1 သို့ encoded storage ထဲသို့ပြောင်းရန်လိုအပ်သည်ဆိုပါစို့။ ၎င်းကိုမှတ်ဥာဏ်ကိုအရင်ဖတ်ရန်မလိုအပ်ပါ။ ထို့နောက် ICONV () ကို သုံးရန်မလိုအပ်ပါ။
$source = fopen('utf8file.txt', 'r');
$target = fopen('convertedfile.txt', 'w');
stream_filter_append($target, 'convert.iconv.UTF-8/ISO-8859-1', STREAM_FILTER_WRITE);
while (!feof($source)) {
$line = fgets($source);
fwrite($target, $line);
}
fclose($source);
fclose($target);
PHP သည် log filtering, အထိခိုက်မခံစကားလုံးအစားထိုးခြင်းစသည့်သီးခြားစီးပွားရေးအခြေအနေများအတွက်အထူးအသုံးဝင်သည့်ထုံးစံစီးပွါးရေး filmits များကိုမှတ်ပုံတင်ခွင့်ပြုသည်။
class UpperCaseFilter extends php_user_filter {
function filter($in, $out, &$consumed, $closing) {
while ($bucket = stream_bucket_make_writeable($in)) {
$bucket->data = strtoupper($bucket->data);
$consumed += $bucket->datalen;
stream_bucket_append($out, $bucket);
}
return PSFS_PASS_ON;
}
}
// filter ကိုမှတ်ပုံတင်ပါ
stream_filter_register('string.uppercase', 'UpperCaseFilter');
// filter များအသုံးပြုခြင်း
$fp = fopen('php://output', 'w');
stream_filter_append($fp, 'string.uppercase');
fwrite($fp, 'hello gitbox.net!');
fclose($fp);
output ကိုဖြစ်လိမ့်မည်:
HELLO GITBOX.NET!
stream_get_filters () သည်စွမ်းဆောင်ရည်အကောင်းဆုံးအတွက်အစမှတ်ဖြစ်သည်။ ၎င်းသည်မည်သည့်ကိရိယာများကိုရရှိနိုင်ပါသည်။
? built-in filter များအပြီး manual data data အပြောင်းအလဲနဲ့လျှော့ချပါ
? Redundant Memory နှင့် I / O စစ်ဆင်ရေးများကိုရှောင်ပါ
? သင်၏စီးပွားရေးအခြေအနေနှင့်ကိုက်ညီရန်ထုံးစံ filter များကိုရေးပြီးအသုံးချပါ
ဤနည်းလမ်းများမှတစ်ဆင့် PHP ၏စွမ်းဆောင်ရည်ကိုဖိုင်စီးဆင်းမှု, ကွန်ရက်စီးဆင်းမှု, မှတ်ဥာဏ်စီးဆင်းမှုနှင့်အခြားအခြေအနေများတွင် PHP ၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်သည်။
သင်ပိုမိုသိလိုပါကတရားဝင်စာရွက်စာတမ်းများကိုစစ်ဆေးပါ။
https://www.gitbox.net/manual/en/function.streamction.php