PHP တွင် stream_get_filters () function သည် developer များကိုရရှိနိုင်သည့် stream filters အားလုံးကိုကြည့်ရှုရန်ခွင့်ပြုသည်။ Stream filter တစ်ခုသည်ဒေတာစီးကိုဖတ်သည့်အခါသို့မဟုတ်ရေးသားထားသောအခါအချက်အလက်များကိုပြုပြင်ရန်ယန္တရားတစ်ခုဖြစ်သည်။ အထူးသဖြင့်စာဝှက်ထားတဲ့ data streams တွေကိုကိုင်တွယ်တဲ့အခါမှာ application တစ်ခုမှာအလွန်အသုံးဝင်ပါတယ်, အထူးသဖြင့်စာဝှက်ထားတဲ့ data stream တွေကိုကိုင်တွယ်တဲ့အခါ,
ဤဆောင်းပါးတွင် Encrypted data streams များကိုဖတ်ရန်နှင့်သင့်လျော်သော filter ကိုရွေးချယ်ရန် Stream_get_Filters () ကို မည်သို့အသုံးပြုရမည်ကိုဆွေးနွေးပါမည်။ အထူးသဖြင့်စာဝှက်ထားသောဒေတာများနှင့်အပြန်အလှန်ဆက်သွယ်သည့်အခါ stream filter များကိုမှန်ကန်စွာအသုံးပြုရန်အရေးကြီးသည်။ ဒီမှာသော့ချက်ခြေလှမ်းများနှင့်ကြိုတင်ကာကွယ်ရေးအချို့ကိုဤတွင်ဖော်ပြထားသည်။
Stream filter တစ်ခုသည်ဒေတာစီးဆင်းမှုများကိုပြုလုပ်ရန် "အလယ်အလတ်" ဖြစ်သည်။ ဖိုင်, network socket သို့မဟုတ်အခြား stream မှအချက်အလက်များကိုသင်ဖတ်သည့်အခါစီးပွါးရေးသည်စီးဆင်းမှုကိုဖြတ်သန်းမီအချက်အလက်များကိုပြုပြင်ပြောင်းလဲခြင်းသို့မဟုတ်ပြောင်းလဲခြင်းသို့မဟုတ်ပြောင်းလဲခြင်းမပြုပါ။ ဘုံစီးဆင်းမှုစစ်ထုတ်ခြင်းများတွင် compression, decompression, encryption နှင့်စာဝှက်ဖြည်ခြင်းတို့ပါဝင်သည်။
PHP သည် built-in filters များကိုစည်းလုံးစွာစီးဆင်းစေသည်။
Zlib.inflate : ဒေတာကို decompress လုပ်ဖို့အသုံးပြုသည်
Zlib.Deflate : ဒေတာများကိုချုံ့ရန်အသုံးပြုသည်
Mcrypt : ဒေတာများကိုစာဝှက်ရန်နှင့်စာဝှက်ဖြည်ရန်အသုံးပြုသည်။
stream_get_filters () function မှတဆင့်, လက်ရှိ PHP installation တွင်ရရှိနိုင်သည့် filter အားလုံးကိုရရှိနိုင်သည့် filter အားလုံးကိုရနိုင်သည်။
$filters = stream_get_filters();
print_r($filters);
ဤကုဒ်သည်ရရှိနိုင်သည့် filter အားလုံးကိုစာရင်းပြုစုလိမ့်မည်။
စာဝှက်ထားတဲ့ data streams တွေကိုကိုင်တွယ်တဲ့အခါ Mcrypt.ecb , McrypRecized and McrypRecized and McrypRecated and `ရည်ညွှန်းချက်အဖြစ်သုံးနိုင်ပေမယ့်ကိုရည်ညွှန်းအဖြစ်အသုံးချနိုင်သေးတဲ့အရာအဖြစ်သုံးနိုင်ပါတယ်။
ဥပမာအားဖြင့်, Mcrypt မှတစ်ဆင့်စာဝှက်ထားတဲ့ဒေတာစီးကိုဖတ်ရန်သင်လိုအပ်သည်ဆိုပါစို့, သင့်လျော်သော stream filter ကိုမည်သို့အသုံးပြုရမည်ကိုဥပမာတစ်ခုရှိသည်။
// ယူဆချက် $resource စာဝှက်ထားတဲ့ data stream ဖြစ်ပါတယ်
$encryptedStream = fopen("php://memory", "r+");
stream_filter_append($encryptedStream, 'mcrypt.rijndael-128');
ဤဥပမာတွင်ကျွန်ုပ်တို့သည်စာဝှက်ထားသောစီးဆင်းနေသောအချက်အလက်များကိုဖတ်ရန် McRypt.raijndael-128 filter ကိုအသုံးပြုသည်။
stream_get_filters () function ကိုသုံးတဲ့အခါ, လုပ်ငန်းများ၌ encryption algorithm ကိုသိရန်လိုအပ်သည်။ လက်ျာ filter ကိုရွေးချယ်ခြင်းသည်သင်၏လိုအပ်ချက်များအပေါ်မူတည်သည်။
စာဝှက်စနစ်အမျိုးအစား - ဒေတာများကို encrypting လုပ်ရန် algorithm ကိုအတည်ပြုရန်လိုအပ်သည်။ ဥပမာ Mcrypt သည် Mcrypt.rijndael-128 , Mcrypt.aes-128 ကဲ့သို့သော algorithm filters အမျိုးမျိုးကိုပေးသည်။
stream type - စာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းတို့သည်များသောအားဖြင့် bidirectional stream လုပ်ငန်းများအတွက်များသောအားဖြင့်ပလေပိဒေသတက်ရန်လိုအပ်သည်။ ဥပမာအားဖြင့် Mcrypt 's encryption နှင့်စာဝှက်ဖြည်ခြင်းတို့ကို တွဲဖက်. အသုံးပြုသောအခါသင်ဖတ်ရှုရန်နှင့်စာရေးခြင်းနှင့်စာရေးခြင်းကိုသေချာစေရန်လိုအပ်သည်။
ဒေတာအရင်းအမြစ် - ချောင်း၏အရင်းအမြစ်သည်အရေးကြီးသောအချက်တစ်ချက်ဖြစ်သည်။ ဒေတာဖိုင်တစ်ခုသို့မဟုတ်ကွန်ယက်စီးဆင်းမှုမှရရှိပါကအချက်အလက်များကိုဖတ်သည့်အခါသင့်လျော်သောစာဝှက်ဖြည်ရန် filter ကိုသေချာအောင်ပြုလုပ်ရန်လိုအပ်သည်။
သင့်မှာစာဝှက်ထားတဲ့ URL ရှိတယ်ဆိုပါစို့။ stream_get_filters မှတဆင့် filter အားလုံးကိုသင်ရနိုင်ပြီးလည်ပတ်ရန်မှန်ကန်သော filter ကိုရွေးပါ။ စာဝှက်ထားတဲ့ URL မှဒေတာများကိုဖတ်ရန်နှင့်စာဝှက်ဖြည်ရန်နှင့်စာဝှက်ဖြည်ရန်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$url = "https://gitbox.net/encrypted_data"; // သေတမ်းစာURLဒိုမိန်းအမည်ကိုအစားထိုးပါ gitbox.net
// စာဝှက်ထားတဲ့စီးကိုဖွင့်ပါ
$encryptedStream = fopen($url, "r");
// stream filter ကို သုံး. ဒေတာများကို decrypt
stream_filter_append($encryptedStream, 'mcrypt.rijndael-128', STREAM_FILTER_READ);
// စာဝှက်ဖြည်ထားသောအချက်အလက်များကိုဖတ်ပါ
$decryptedData = stream_get_contents($encryptedStream);
echo $decryptedData;
fclose($encryptedStream);
စာဝှက်ခြင်းနှင့်စာဝှက်ဖြည်ခြင်းအပြင်အခြားအများအားဖြင့်အသုံးပြုသော stream filter များလည်းရှိသည်။ ဥပမာအားဖြင့် filter များကိုချုံ့ခြင်းနှင့် decompress)
Zlib.inflate : Stream ဒေတာကို decompress လုပ်ဖို့အသုံးပြုတယ်
Zlib.doflate : Stream ဒေတာကိုချုံ့ရန်အသုံးပြုသည်
သင်၏ဒေတာစီးထဲ၌ encrypted content ကိုကိုင်တွယ်ရန်ဤစစ်ထုတ်စက်များကိုသင်အသုံးပြုနိုင်သည်။
$compressedStream = fopen("php://memory", "r+");
stream_filter_append($compressedStream, 'zlib.inflate', STREAM_FILTER_READ);
stream_get_filters () function ကို သုံး. စာဝှက်ထားတဲ့ဒေတာစီးဆင်းမှုတွေကိုဖတ်တဲ့အခါသင့်တော်တဲ့ stream filter ကိုရွေးဖို့အရေးကြီးတယ်။ Data Stream ၏စာဝှက်စနစ်, လိုအပ်သောစာဝှက်ဖြည်နည်းနှင့်သတ်သတ်မှတ်မှတ်စီးပွားရေးလုပ်ငန်းလိုအပ်ချက်များအပေါ် အခြေခံ. မှန်ကန်သော filter ကိုရွေးချယ်ရန်လိုအပ်သည်။ finams သည်မည်သို့အလုပ်လုပ်သည်ကိုနားလည်ခြင်းအားဖြင့်စာဝှက်ထားသောနှင့်စာဝှက်ဖြည်သော streaming data များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်သောအချက်အလက်များကိုပိုမိုပြောင်းလွယ်ပြင်လွယ်စွာကိုင်တွယ်နိုင်သည်။