PHP တွင် stream_get_meta_data သည် stream အရင်းအမြစ်များနှင့်ပတ်သက်သော metadata အချက်အလက်ကိုရယူနိုင်သည့်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤရွေ့ကား metadata တွင် status, အမျိုးအစားနှင့်စီးကြောင်းနှင့်ပတ်သက်။ အရေးကြီးသောသတင်းအချက်အလက်များပါရှိသည်။ ဤလုပ်ဆောင်မှုကိုမည်သို့အသုံးပြုရမည်ကိုနားလည်ခြင်းသည် developer များအတွက်မှန်ကန်စွာမရှိမဖြစ်လိုအပ်သည်။ အထူးသဖြင့်ကွန်ရက်စီးများကဲ့သို့သောအခြားစီးဆင်းမှုများကိုကိုင်တွယ်ရန်လိုအပ်သည်။
File Stream Metadata သည်စီးဆင်းမှုနှင့်ပတ်သက်သောနောက်ထပ်သတင်းအချက်အလက်များကိုရည်ညွှန်းသည်။ စီးဆင်းနေသောစီးဆင်းမှုသည်များသောအားဖြင့်ဖွင့်လှစ်ထားသည်ဖြစ်စေ, ဖိုင်အမျိုးအစား, encoding method status, ဖွင့်လှစ်ထားသည်ဖြစ်စေ, ပွင့်လင်း mode စသည်ဖြစ်စေ, ပွင့် လင်း mode စသည်ဖြစ်စေ, ၎င်းသည်ဖိုင်အမျိုးအစားကိုတိုက်ရိုက်ပြန်မပေးပါ,
stream_get_meta_data function ၏အခြေခံ syntax သည်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">stream_get_meta_data</span></span><span>(resource </span><span><span class="hljs-variable">$stream</span></span><span>): </span><span><span class="hljs-keyword">array</span></span><span>
</span></span>$ stream parameter သည်မှန်ကန်သော file stream အရင်းအမြစ် ( fopen () , stream_socient _cletient () စသည်) စသဖြင့်ဖန်တီးထားသော stream stream stream stream stream) ဖြစ်သည်။
ဒီ function ကစီးဆင်းမှု metadata ပါတဲ့ခင်းကျင်းမှုကိုပြန်ပို့သည်။ ဘုံ metadata keys များတွင်:
Timed_out : စမ်းချောင်းကစမ်းကြည့်နေသလား။
ပိတ်ဆို့ခြင်း - Boolean Value သည်စီးဆင်းမှုသည်ပိတ်ဆို့ထားသောပြည်နယ်တွင်ရှိ, ရှိမရှိညွှန်ပြသည်။
EFT : စမ်းချောင်းသည်ဖိုင်၏အဆုံးသို့ရောက်နေပြီဆိုတာကို boolean value ။
stream_type : stream အမျိုးအစား ( TCP , UDP , ဖိုင် စသည်တို့) stream အမျိုးအစားကိုကိုယ်စားပြုသည်။
Wrapper_type : string ကို stream ၏ encapsulation အမျိုးအစားကိုကိုယ်စားပြု။
Wrapper_Data : strings, encapsulated data နှင့်ပတ်သက်သည့်အပိုဆောင်းအချက်အလက်များပါ 0 င်သည့်အပို (HTTP တုံ့ပြန်မှုခေါင်းစီးစသည်) ။
mode : string တစ်ခု (ဥပမာ R , W , A စသည်) ဖိုင်ဖွင့်စနစ်ကိုညွှန်ပြသည့် string တစ်ခု။
STREAM_GET_META_DATA ကို ဘယ်လိုသုံးရမယ်ဆိုတာကိုနားလည်ဖို့လက်တွေ့ကျပုံသက်သေကိုသုံးကြည့်ရအောင်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ဖိုင်စီးကိုဖွင့်ပါ</span></span><span>
</span><span><span class="hljs-variable">$stream</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"example.txt"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>);
</span><span><span class="hljs-comment">// ဖိုင်စီး၏ metadata ရယူပါ</span></span><span>
</span><span><span class="hljs-variable">$metadata</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_get_meta_data</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-comment">// output metadata</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$metadata</span></span><span>);
</span><span><span class="hljs-comment">// ဖိုင်စီးကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>အထက်ပါဥပမာတွင် file seight.txt ကိုဖွင့်ရန် FOPEN () ကို ပထမ ဦး စွာအသုံးပြုပါ။ ထို့နောက် The stream_get_meta_Data () ကို သုံးပါ။ $ Metadata Array သည်အောက်ပါအကြောင်းအရာများပါ 0 င်နိုင်သည်။
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[timed_out] =>
[blocked] =>
[eof] =>
[stream_type] => file
[wrapper_type] =>
[wrapper_data] =>
[mode] => r
[seekable] => </span><span><span class="hljs-number">1</span></span><span>
[uri] => example.txt
)
</span></span>Timed_out : ကွန်ယက်စီးဆင်းမှုတစ်ခုဖြစ်ပါက အချိန်ကုန်ခြင်းသည် အချိန်ကုန်ခြင်းကြောင့်စီးဆင်းမှုကိုအနှောင့်အယှက်မဖြစ်စေ, File Streams အတွက်ဒီလယ်ကွက်သည်များသောအားဖြင့်ဗလာဖြစ်သည်။
ပိတ်ဆို့ထားခြင်း - stream သည်များသောအားဖြင့်ကွန်ယက်စီးဆင်းမှုများအတွက်အသုံးပြုသောပိတ်ဆို့ခြင်း mode တွင်ရှိ, File Streams သည်ယေဘုယျအားဖြင့်ဤအရာကိုမထိခိုက်ပါ။
EFT : ဖိုင်၏အဆုံးကိုဖတ်သည့်အခါဤလယ်ကွင်းသည် စစ်မှန်သော ကြောင့်ဖြစ်သည် ။
Steam_type : စမ်းချောင်းအမျိုးအစားကိုဖော်ပြသည်။ သာဓကအားဖြင့်သာမန်ဖိုင်ချောင်းများအတွက် ဖိုင်ကို ဤနေရာတွင်ပြန်ပို့သည်။ ၎င်းသည်ကွန်ယက်ချိတ်ဆက်မှုတစ်ခုဖြစ်ပါက TCP သို့မဟုတ် UDP ကို ပြန်ပို့နိုင်သည်။
Mode : Read- orm ကိုကိုယ်စားပြုသောအ နေ ဖြင့် Read-or သာဖြစ်သည်,
ဖိုင်များကိုထုတ်လွှင့်ခြင်းအပြင် stream_get_meta_data ကိုလည်း ကွန်ယက်စီးဆင်းမှု၏ metadata ကိုရရှိရန်လည်းအသုံးပြုနိုင်သည်။ HTTP တောင်းဆိုမှုစီးဆင်းမှုကိုဥပမာတစ်ခုအဖြစ်ယူပြီး, ကုဒ်ပုံဥပမာမှာအောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// a TCP ဆက်</span></span><span>
</span><span><span class="hljs-variable">$stream</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_socket_client</span></span><span>(</span><span><span class="hljs-string">"tcp://www.example.com:80"</span></span><span>, </span><span><span class="hljs-variable">$errno</span></span><span>, </span><span><span class="hljs-variable">$errstr</span></span><span>, </span><span><span class="hljs-number">30</span></span><span>);
</span><span><span class="hljs-comment">// 获取ဆက်流的元数据</span></span><span>
</span><span><span class="hljs-variable">$metadata</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_get_meta_data</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-comment">// output metadata</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$metadata</span></span><span>);
</span><span><span class="hljs-comment">// စီးကိုပိတ်ပါ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>ဤဥပမာတွင် TCP ဆက်သွယ်မှုတစ်ခုကိုဖန်တီးရန် Stream_socket_clies ကို သုံး. ဆက်သွယ်မှု၏ metadata ကိုရယူပါ။ ပြန်လာသော metadata တွင်ကွန်ယက်စီးဆင်းမှုနှင့်ပတ်သက်သောအချက်အလက်များနှင့်ပါ 0 င်နိုင်သည်။
File Stream VS Network Stream : File Streams နှင့် Network Streams အတွက် Metadata ကို stream_get_meta_data မှပြန်လာသော Metadata သည်ကွဲပြားလိမ့်မည်။ ကွန်ယက်စီးဆင်းမှုအတွက် Metadata သည်ကွန်ယက်ပြည်နယ်ကိုပိုမိုအာရုံစိုက်သည်။ ဖိုင်စီးဆင်းမှုအတွက်ဖိုင်များ၏ဖွင့်လှစ်ခြင်းနှင့်ဖိုင်၏အဆုံးတွင်ဖော်ထုတ်ခြင်းကိုအဓိကထားသည်။
ဖိုင်များစီးဆင်းမှုအချက်အလက်များကိုရယူပါ ။ ဖိုင်များသည်ဖိုင်များကိုပြုပြင်သည့်အခါ EFF (ဖိုင်) ကွက်ကိုအထူးအသုံးဝင်သည်, ၎င်းသည်ဖိုင်များကိုဖတ်သည့်အခါဖိုင်နယ်ပယ်ထက် ကျော်လွန်. အကြောင်းအရာကိုဖတ်ရှုခြင်းကိုရှောင်ကြဉ်သည်။
စွမ်းဆောင်ရည် - stream_get_meta_data သည် အလွန်အသုံးဝင်သောသတင်းအချက်အလက်များကိုထောက်ပံ့နေစဉ်မကြာခဏခေါ်ဆိုမှုများသည်အထူးသဖြင့်ကြီးမားသောဖိုင်များသို့မဟုတ်မြင့်မားသောဖိုင်များသို့မဟုတ်မြင့်မားသော frequency network တောင်းဆိုမှုများအတွက်ပိုမိုများပြားသောစွမ်းဆောင်ရည်ကိုယူဆောင်လာနိုင်သည်။ ပုံမှန်ကိစ္စများတွင်လိုအပ်လျှင်သာခေါ်ဆိုရန်အကြံပြုသည်။
stream_get_meta_data သည်စီးဆင်းမှုများပြုလုပ်သောအခါအလွန်လက်တွေ့ကျသောလုပ်ဆောင်ချက်ဖြစ်သည်။ ၎င်းသည်သင်၏ metadata ကိုမြန်မြန်ဆန်ဆန်ရနိုင်ပြီးစီးဆင်းမှုအခြေအနေကိုနားလည်ရန်ကူညီနိုင်သည်။ ဤလုပ်ဆောင်မှုကိုသင့်လျော်စွာအသုံးပြုခြင်းအားဖြင့် developer များသည် stream လုပ်ငန်းများကိုပိုမိုထိရောက်စွာ debug လုပ်နိုင်သည်, စာဖတ်ခြင်းသို့မဟုတ်စာရေးရန်အစီအစဉ်၏တည်ငြိမ်မှုနှင့်မှန်ကန်မှုကိုသေချာစေနိုင်သည်။ ၎င်းသည်ဖိုင်စီး, ကွန်ယက်စီးသို့မဟုတ်အခြားချောင်းအမျိုးအစားများဖြစ်စေသည်ဖြစ်စေ,