PHP တွင် stream_get_meta_data () သည်အလွန်အသုံးဝင်သောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤလုပ်ဆောင်မှုကိုအသုံးပြုသောအခါ developer များစွာသည်စပ်စုကြသည်။
ဤဆောင်းပါးသည်ဤပြ problem နာကိုဆန်းစစ်ကြည့်ရှုရန်နှင့် stream_get_meta_data ၏အမှန်တကယ်လုပ်ဆောင်မှုများနှင့်ကန့်သတ်ချက်များကိုသရုပ်ဖော်ရန်ဥပမာများကိုအသုံးပြုပါမည်။
တိုတောင်းသောအဖြေမှာ - protocol type ကိုတိုက်ရိုက်ဖော်ထုတ်။ မရပါ ။
stream_get_meta_data ()) ဖိုင်အဆုံး ( EFF ) ကိုပိတ်ထားသည်ဖြစ်စေ, ကူးယူ နိုင်သော /, protocol type ၏သတင်းအချက်အလက်များကိုစီးဆင်းသောအခါစီးဆင်းနေသောအရင်းအမြစ်တွင်အမှန်တကယ်သွယ်ဝိုက်သော်လည်း function မှတဆင့်ထိတွေ့မှုမရှိပါ။
ဥပမာအားဖြင့်:
<span><span><span class="hljs-variable">$fp</span></span><span> = </span><span><span class="hljs-title function_ invoke__">fopen</span></span><span>(</span><span><span class="hljs-string">"http://example.com"</span></span><span>, </span><span><span class="hljs-string">"r"</span></span><span>);
</span><span><span class="hljs-variable">$meta</span></span><span> = </span><span><span class="hljs-title function_ invoke__">stream_get_meta_data</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$meta</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">fclose</span></span><span>(</span><span><span class="hljs-variable">$fp</span></span><span>);
</span></span>
$ Meta Data ဖွဲ့စည်းပုံသည်အကြမ်းအားဖြင့်အောက်ပါအတိုင်းဖြစ်သည် -
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[wrapper_type] => http
[stream_type] => tcp_socket
[mode] => r
[unread_bytes] => </span><span><span class="hljs-number">0</span></span><span>
[seekable] =>
[uri] => </span><span><span class="hljs-attr">http</span></span><span>://example.com
[timed_out] =>
[blocked] => </span><span><span class="hljs-number">1</span></span><span>
[eof] =>
)
</span></span>
၎င်းတို့အနက် HTTP , FTP , Php စသည့်စသည့် "protocol type" နှင့်အနီးစပ်ဆုံး နေရာမှာ HTTP, FTP, Php စသည့်နယ်ပယ်တွင်အနီးဆုံးနေရာတွင်ရှိသည် ။
Wrapper_type : ဤကွက်လပ်သည် PHP မှအသုံးပြုသော "Wrapper" ၏ wrapper အမျိုးအစားကိုကိုယ်စားပြုသည်။ အသုံးများသောတန်ဖိုးများတွင် HTTP , FTP , PHP, PLP , PLPFile စသည်တို့ပါဝင်သည်။
Steam_type - TCP_SOCTECT , SSL , SSL, stdio စသည့်အဆင့်နိမ့်ကိုယ်စားပြုချက်များစသည်တို့သည်အမှန်တကယ်ဂီယာနည်းလမ်းကိုထင်ဟပ်စေသည်။
သတင်းအချက်အလက်များကို "protocol" အဆင့်တွင်သတင်းအချက်အလက်များကိုဖော်ထုတ်လိုပါက Wrapper_type လယ်ကွင်းကိုပထမဆုံးကြည့်ရှုရန်အကြံပြုသည်။
protocol သတင်းအချက်အလက်များကိုထုတ်ယူခြင်းနှင့်ပြန်လည်ထုတ်ယူသောအထောက်အကူပြုလုပ်ဆောင်မှုကိုသင် encapsult ။ ဥပမာအားဖြင့်:
<span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">getStreamProtocol</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-variable">$stream</span></span></span><span>) {
</span><span><span class="hljs-variable">$meta</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-keyword">return</span></span><span> </span><span><span class="hljs-variable">$meta</span></span><span>[</span><span><span class="hljs-string">'wrapper_type'</span></span><span>] ?? </span><span><span class="hljs-literal">null</span></span><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">'php://input'</span></span><span>, </span><span><span class="hljs-string">'r'</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">getStreamProtocol</span></span><span>(</span><span><span class="hljs-variable">$stream</span></span><span>); </span><span><span class="hljs-comment">// ထုတ်လုပ်ခြင်း: php</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>
ဤနည်းအားဖြင့်သင်သည်စီးဆင်းမှု protocol ၏အရင်းအမြစ်ကိုအခြေခံအားဖြင့်ဆုံးဖြတ်နိုင်သည်။
stream_get_meta_data () သည် protocol name ကိုအတိအလင်းမပြန်ပါ။ rapper_type fields သည် developer များအား protocol သို့မဟုတ် wrapper type ကိုအသုံးပြုသည်ကိုဆုံးဖြတ်ရန်ပြန်လည်ရောက်ရှိသည်။ ဤသွယ်ဝိုက်မှတ်ပုံတင်နည်းသည်အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင်အလွန်လက်တွေ့ကျလာသည်။
သိကောင်းစရာများ - stream အရင်းအမြစ်မျိုးစုံနှင့်ဆက်ဆံရာတွင်အထူးသဖြင့်ကွန်ယက်သို့မဟုတ်ဝေးလံခေါင်ဖျားသောစမ်းချောင်းများနှင့်ပတ်သက်လာလျှင်ချမှတ်ထားခြင်းနှင့်ခြွင်းချက်ကိုင်တွယ်ခြင်းကိုဂရုပြုရန်သေချာပါစေ။