လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> stream_get_filters stream filter status ကိုကြည့်ရှုရန် stream_get_meta_data နှင့်တွဲဖက်အသုံးပြုသည်

stream_get_filters stream filter status ကိုကြည့်ရှုရန် stream_get_meta_data နှင့်တွဲဖက်အသုံးပြုသည်

gitbox 2025-05-27

PHP တွင် Stream သည်ဖိုင်ပြုပြင်ခြင်း, ကွန်ယက်ဆက်သွယ်ရေးနှင့်အခြားနယ်ပယ်များတွင်ကျယ်ပြန့်စွာအသုံးပြုသောအရေးကြီးသောအချက်အလက်ပြုပြင်ခြင်းယန္တရားတစ်ခုဖြစ်သည်။ Stream filter သည် PHP stream ၏အစိတ်အပိုင်းတစ်ခုဖြစ်ပြီး encoding ပြောင်းလဲခြင်း, compression နှင့်အခြားလုပ်ငန်းများကဲ့သို့သောအချက်အလက်များကိုမလွှင့်မီအချက်အလက်များကိုကြိုတင်မသုံးမီအသုံးပြုသည်။ stream_get_filters နှင့် stream_get_meta_DA_DATA သည် developer များနှင့် stream filter များ၏အခြေအနေကိုရှုမြင်ရန်နှင့်စီမံခန့်ခွဲသောအလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်နှစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည်စီးဆင်းမှု filter များလျှောက်လွှာကိုစစ်ဆေးရန်ဤလုပ်ငန်းဆောင်တာနှစ်ခုကိုမည်သို့အသုံးပြုရမည်ကိုမိတ်ဆက်ပေးလိမ့်မည်။

စီးဆင်းမှု filter ဆိုတာဘာလဲ။

Stream filter တစ်ခုသည်စီးဆင်းမှုကို ဖြတ်. မသွားမီစမ်းချောင်းထဲရှိအချက်အလက်များကိုချုံ့ထားသည့်ယန္တရားတစ်ခုဖြစ်သည်။ PHP သည်ဒေတာချုံ့ခြင်း, ဇာတ်ကောင် encoding ပြောင်းလဲခြင်း, ဒေတာ encryption များစသဖြင့်ထုတ်လုပ်ထားသော stream filters အမျိုးမျိုးကိုထောက်ပံ့ပေးသည်။

stream_get_filters function ကို

stream_get_filters function ကိုရရှိနိုင်သည့် stream filter များအားလုံးကိုပြန်ပို့ရန်အသုံးပြုသည်။ လက်ရှိ PHP ပတ် 0 န်းကျင်တွင်မည်သည့် stream များကိုမည်သည့် stream များကိုအသုံးပြုနိုင်သော developer များကိုနားလည်ရန်ကူညီနိုင်သည်။ ဤတွင်ဤလုပ်ဆောင်မှု၏ရိုးရှင်းသောအသုံးပြုမှုတစ်ခုဖြစ်သည်။

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

ဤကုဒ်သည်လက်ရှိရရှိနိုင်သည့် filters များအားလုံးပါ 0 င်သည့်ခင်းကျင်းမှုကိုထုတ်ပေးသည်။ ပြန်လာသောရလဒ်မှာလည်းဆင်တူသည် -

 Array
(
    [0] => zlib.inflate
    [1] => zlib.deflate
    [2] => string.rot13
    [3] => convert.iconv.* 
)

stream_get_meta_data function ကို

stream_get_meta_data function ကိုစီးနှင့်ဆက်စပ်သော Metadata ရရှိရန်အသုံးပြုသည်။ Metadata တွင်စီးဆင်းမှုအမျိုးအစားနှင့်စီးဆင်းနေသောအခြားဝိသေသလက္ခဏာများပါ 0 င်သည့်စီးဆင်းမှုအမျိုးအစားအပါအ 0 င်စီးဆင်းမှု၏အခြေအနေသတင်းအချက်အလက်များပါ 0 င်သည်။ ဒီ function ကိုသုံးနိုင်ပါတယ်။

stream_get_meta_data ကိုအသုံးပြုပြီးစီးကြောင်းတစ်ခုရဲ့ metadata ကိုဘယ်လိုကြည့်ရှုနိုင်မလဲဆိုတာအတွက်နမူနာကုဒ်ပါ။

 <?php
$stream = fopen('https://gitbox.net/somefile.txt', 'r');
$metaData = stream_get_meta_data($stream);
print_r($metaData);
fclose($stream);
?>

ပေါင်းစပ် trosam_get_filters နှင့် stream_get_meta_data ကို သုံးပါ

ကျွန်ုပ်တို့သည်စီးဆင်းမှုတစ်ခု၏ filter status ကိုကြည့်ရှုရန် stream_get_filters နှင့် stream_get_meta_data ကို သုံးနိုင်သည်။ ဥပမာအားဖြင့်, ကျွန်ုပ်တို့သည်အဝေးမှ URL ကိုဖွင့်ပြီး filter တစ်ခုပြုလုပ်ပါကစီးကြောင်းတွင် filter တစ်ခုပါ 0 င်ပြီး filter မည်သို့အလုပ်လုပ်သည်ကိုစစ်ဆေးနိုင်သည်။

ဤတွင်ဖိုင်စီးကိုဖွင့်သောအခါချထားသည့်အချိန်သတ်မှတ်ထားသည့်သတ်သတ်မှတ်မှတ် filter တစ်ခုရှိမရှိစစ်ဆေးရန်မည်သို့စစ်ဆေးသည်။

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

// ပွင့်လင်း RemoteURLနှင့် filter များလျှောက်ထားပါ
$context = stream_context_create([
    'http' => [
        'header' => 'User-Agent: PHP'
    ]
]);
$stream = fopen('https://gitbox.net/somefile.txt', 'r', false, $context);

// အဆိုပါစီး၏ metadata ရယူပါ
$metaData = stream_get_meta_data($stream);

// output ကိုစီး၏ metadata
print_r($metaData);

// တိကျတဲ့ filter ကိုစီးရန်လျှောက်ထားလျှင်စစ်ဆေးပါ
if (in_array('convert.iconv.*', $filters)) {
    echo "ဒီစီးဆင်းမှုဇာတ်ကောင် encoding changing filter ကိုထောက်ပံ့သည်。\n";
} else {
    echo "ဤစီးသည်ဇာတ်ကောင် encoding ပြောင်းလဲခြင်း filter ကိုမထောက်ပံ့ပါ。\n";
}

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

code parsing

  1. လက်ရှိ PHP ပတ် 0 န်းကျင်မှပံ့ပိုးသော stream form များကိုရယူရန် Filter_Get_Filters ကို ပထမ ဦး စွာအသုံးပြုပါ။

  2. Stream ကိုဖွင့်ပါ - fopen function မှတဆင့်ဝေးလံခေါင်သီသော URL stream ကိုဖွင့်ပါ။ ဤနေရာတွင်ကျွန်ုပ်တို့သည် Strea ၏တောင်းဆိုမှုနည်းလမ်းသည်အမှန်တကယ် application နှင့်အညီပိုမိုနီးကပ်စေရန်တောင်းဆိုမှုခေါင်းစဉ်ကိုဖန်တီးရန် HTTP အခြေအနေကိုအသုံးပြုသည်။

  3. Metadata : stream_get_meta_data function ကိုသုံးပြီး stream ၏ metadata ကိုရယူရန်နှင့် စစ်ထုတ်စက်များ ပါ 0 င်သည်ကိုကြည့်ရှုရန် filter များကိုစစ်ဆေးပါ။

  4. Child Filter ကိုစစ်ဆေးပါ ။ Stream သည် convert.IcV အမျိုးအစားကဲ့သို့သောတိကျသောစစ်ထုတ်စက်များကိုထောက်ပံ့သည်ကိုစစ်ဆေးပါ။ * In_Array function မှတဆင့်။

  5. Close Stream : နောက်ဆုံးအနေနဲ့ stream အရင်းအမြစ်ကိုပိတ်ဖို့ fcose ကို ခေါ်ပါ။

အကျဉ်းချုပ်

stream_get_filters နှင့် stream_get_meta_data functions များကိုပေါင်းစပ်ခြင်းအားဖြင့် PHP developer များသည် stream filters များ၏လျှောက်လွှာအခြေအနေကိုထိရောက်စွာစစ်ဆေးနိုင်သည်။ ၎င်းသည် streaming လုပ်ငန်းများအတွက်အထူးသဖြင့်ဖိုင်တင်ခြင်း, ဒေါင်းလုပ်များသို့မဟုတ်အခြားကွန်ရက်အချက်အလက်လွှဲပြောင်းခြင်းကိုကိုင်တွယ်သည့်အခါဤအချက်ကိုဖျက်သိမ်းခြင်းနှင့် optimizing လုပ်ရန်အလွန်အထောက်အကူပြုသည်။