လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl thread တောင်းဆိုမှုများစွာ၏ကွပ်မျက် status ကိုသင်ကွပ်မျက်ရန်သင့်အားဘယ်လိုကူညီရမလဲ။

curl thread တောင်းဆိုမှုများစွာ၏ကွပ်မျက် status ကိုသင်ကွပ်မျက်ရန်သင့်အားဘယ်လိုကူညီရမလဲ။

gitbox 2025-08-13

အထူးသဖြင့် API တောင်းဆိုမှုများစွာပြုလုပ်သော PHP ပရိုဂရမ်များပါ 0 င်သည့် PHP အစီအစဉ်များကိုတီထွင်သည့် PHP ပရိုဂရမ်များကိုတီထွင်သည့်အခါ Curl ကိုအသုံးပြုခြင်းသည်ဘုံရွေးချယ်မှုတစ်ခုဖြစ်သည်။ စွမ်းဆောင်ရည်တိုးတက်စေရန် PHP သည်အပြိုင်တောင်းဆိုမှုများကိုပေးပို့နိုင်သည့် Multi-Threaded curl process curl_multi_ * ကို ထောက်ပံ့ပေးသည်။ ၎င်းသည်အစီအစဉ်ကိုတုန့်ပြန်မှုတစ်ခုအဖြစ်စောင့်ဆိုင်းခြင်းထက် program ကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်အတွက်ဤအစီအစဉ်ကိုတစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်ခွင့်ပြုသည်။

သို့သော်ကျွန်ုပ်တို့သည်များစွာသောချည်ထားသောဆံပင်ကောက်ကောက်ကိုအသုံးပြုသောအခါကျွန်ုပ်တို့သည်တောင်းဆိုမှုများကိုပေးပို့ရန်သာလိုသည်သာမက Execution status, error information us us ား, curl_multi_info_Read () function သည်ဤအချက်အလက်များကိုရယူရန်ကူညီပေးသောကိရိယာတစ်ခုဖြစ်သည်။

1 ။ curl_multi_info_read ()?

curl_multi_info_Read () function သည် PHP တွင်လုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ၎င်းမှတစ်ဆင့် developer များကတောင်းဆိုမှုများအပြိုင်တွင်တောင်းဆိုမှုများအပြိုင်တွင်အချိန်တိုအတွင်းတောင်းဆိုမှုကိုတစ်ခုချင်းစီ၏ကွပ်မျက်မှုတိုးတက်မှုနှင့်အခြေအနေကိုစောင့်ကြည့်နိုင်သည်။ ဤလုပ်ဆောင်ချက်သည်တောင်းဆိုမှုအောင်မြင်မှုရှိမရှိ HTTP အဆင့်အတန်းကုဒ်အပါအ 0 င်လက်ရှိတောင်းဆိုမှုအခြေအနေအပါအ 0 င်ခင်းကျင်းမှုအခြေအနေပါ 0 င်သည့်ခင်းကျင်းမှုကိုပြန်ပေးလိမ့်မည်။

2 ။ curl_multi_info_read () ကိုဘယ်လိုသုံးရမလဲ။

curl_multi_info_read () ကို သုံးရန် curl_multi_init မှတဆင့် curl_multi_init မှတစ်ဆင့် curl_multi_init () မှတစ်ဆင့်သီးခြားကောက်ကောက် searles ကိုစတင်ရန်လိုအပ်သည်။ နောက်ဆုံးအနေဖြင့်သင်တောင်းဆိုမှုတစ်ခုစီ၏ကွပ်မျက်မှုအခြေအနေကိုရရှိရန် curl_multi_exec () ကို သုံး. curl_multi_info_read () ကို သုံးနိုင်သည်။

ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// multithreading ကိုအစပြုပါ cURL ရုံးထိုင်အချိန်ကာလ</span></span><span>
</span><span><span class="hljs-variable">$mh</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_multi_init</span></span><span>();

</span><span><span class="hljs-comment">// မျိုးစုံဖန်တီးပါ cURL လက်ကိုင်</span></span><span>
</span><span><span class="hljs-variable">$ch1</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>(</span><span><span class="hljs-string">"https://www.example.com"</span></span><span>);
</span><span><span class="hljs-variable">$ch2</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_init</span></span><span>(</span><span><span class="hljs-string">"https://www.example.org"</span></span><span>);

</span><span><span class="hljs-comment">// တည်ဆောက်သည် cURL ရွေးချယ်စရာများ</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch1</span></span><span>, CURLOPT_RETURNTRANSFER, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_setopt</span></span><span>(</span><span><span class="hljs-variable">$ch2</span></span><span>, CURLOPT_RETURNTRANSFER, </span><span><span class="hljs-literal">true</span></span><span>);

</span><span><span class="hljs-comment">// သေတမ်းစာ cURL လက်ကိုင်添加到多线程ရုံးထိုင်အချိန်ကာလ中</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_multi_add_handle</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$ch1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_multi_add_handle</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$ch2</span></span><span>);

</span><span><span class="hljs-comment">// တောင်းဆိုမှုကို execute</span></span><span>
</span><span><span class="hljs-keyword">do</span></span><span> {
    </span><span><span class="hljs-variable">$status</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_multi_exec</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$active</span></span><span>);
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$active</span></span><span>) {
        </span><span><span class="hljs-comment">// ဖြည့်စွက်ရန်တောင်းဆိုမှုကိုစောင့်ပါ</span></span><span>
        </span><span><span class="hljs-title function_ invoke__">curl_multi_select</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>);
    }
} </span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$active</span></span><span>);

</span><span><span class="hljs-comment">// တစ်ခုချင်းစီကိုတောင်းဆိုမှု၏ကွပ်မျက် status ကိုရယူပါ</span></span><span>
</span><span><span class="hljs-keyword">while</span></span><span> (</span><span><span class="hljs-variable">$info</span></span><span> = </span><span><span class="hljs-title function_ invoke__">curl_multi_info_read</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>)) {
    </span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'result'</span></span><span>] === CURLE_OK) {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Request to "</span></span><span> . </span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'handle'</span></span><span>] . </span><span><span class="hljs-string">" succeeded.\n"</span></span><span>;
    } </span><span><span class="hljs-keyword">else</span></span><span> {
        </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"Request to "</span></span><span> . </span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'handle'</span></span><span>] . </span><span><span class="hljs-string">" failed with error: "</span></span><span> . </span><span><span class="hljs-title function_ invoke__">curl_error</span></span><span>(</span><span><span class="hljs-variable">$info</span></span><span>[</span><span><span class="hljs-string">'handle'</span></span><span>]) . </span><span><span class="hljs-string">"\n"</span></span><span>;
    }
}

</span><span><span class="hljs-comment">// သန့်ရှင်းရေးလုပ်သည်</span></span><span>
</span><span><span class="hljs-title function_ invoke__">curl_multi_remove_handle</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$ch1</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_multi_remove_handle</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>, </span><span><span class="hljs-variable">$ch2</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">curl_multi_close</span></span><span>(</span><span><span class="hljs-variable">$mh</span></span><span>);
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

3 ။ function ကို၏အသေးစိတ်ရှင်းပြချက်

curl_multi_info_read () အောက်ပါနယ်ပယ်များအပါအ 0 င်တောင်းဆိုမှုဆိုင်ရာအချက်အလက်များပါ 0 င်သော array တစ်ခုသို့ပြန်ပို့သည်။

  • ကိုင်တွယ် : သက်ဆိုင်ရာဆံပင်ကောက်ကောက်။

  • ရလဒ် - ကွပ်မျက်ရလဒ်။ အကယ်. တန်ဖိုးက curle_ok ဖြစ်ပါကတောင်းဆိုမှုသည်အောင်မြင်သည်။ အကယ်. တောင်းဆိုမှုပျက်ကွက်ပါကသက်ဆိုင်ရာအမှားကုဒ်ကိုပြန်ပို့သည်။

  • MSG : မက်ဆေ့ခ်ျအမျိုးအစားပြန်လာ (များသောအားဖြင့် curlmsg_done ) သည်တောင်းဆိုမှုပြီးစီးခဲ့သည်ကိုညွှန်ပြသည်။

အဆိုပါ function ကို array ကိုပြန်ရောက်စေပြီးနောက်ထပ်တောင်းဆိုမှုသတင်းအချက်အလက်မရှိတော့ပါက Null ပြန်လာသည်။

4 ။ တောင်းဆိုမှုများစွာ၏ status ကိုစောင့်ကြည့်ပါ

အပြိုင်တောင်းဆိုမှုများစွာပြုလုပ်သောအခါအစီအစဉ်၏ကွပ်မျက်မှုစွမ်းဆောင်ရည်ကိုအထူးသဖြင့်တောင်းဆိုမှုများအကြားတိုက်ရိုက်မှီခိုမှုမရှိပါကအလွန်တိုးတက်လာသည်။ curl_multi_info_Read ကို သုံး. သက်ဆိုင်ရာသတင်းအချက်အလက်များကိုအချိန်တိုအတွင်းရရှိနိုင်စေရန်အတွက်, ခြွင်းချက်များကိုရယူနိုင်ရန်အတွက်အချိန်မှန်ကိုအချိန်မှန်ပေးရန်အတွက်တောင်းဆိုမှုတစ်ခုစီ၏အခြေအနေကိုကျွန်ုပ်တို့စောင့်ကြည့်နိုင်သည်။

curl_multi_info_read () နှင့် () ကျွန်ုပ်တို့လုပ်နိုင်သည် -

  • တောင်းဆိုမှု၏ကွပ်မျက် status ကိုရယူပါ ။ တောင်းဆိုမှုသည်အောင်မြင်မှုရှိမရှိအတည်ပြုပါ။

  • တောင်းဆိုထားသောအမှားအယွင်းကိုဖမ်းယူပါ ။ တောင်းဆိုမှုပျက်ကွက်ပါကအမှားကုဒ်ကိုလွယ်ကူစွာလုပ်ဆောင်ရန်အတွက်ချက်ချင်းရယူနိုင်ပါသည်။

  • တောင်းဆိုမှုတုန့်ပြန်မှုအချက်အလက်များကိုတကယ့်အချိန်တွင်ရယူပါ ။ တောင်းဆိုမှုသည်အောင်မြင်ပါက,

5 ။ လက်တွေ့ကျသော application အခြေအနေများ

curl_multi_info_read () သည် HTTP တောင်းဆိုမှုများကိုအသုတ်တွင်ပြုလုပ်သောနေရာများတွင်အချို့သောအခြေအနေများတွင်အထူးအရေးကြီးသည်။ ဥပမာအားဖြင့်:

  • Batch Data တွားသွားဝါး : ဒေတာများကိုရယူရန်နှင့်၎င်းကိုဆန်းစစ်ရန်တစ်ချိန်တည်းတွင်ဝက်ဘ်ဆိုက်များကိုတောင်းဆိုပါ။

  • Parallel API ခေါ်ဆိုမှု - ပြင်ပ is ဟုခေါ်ရန်လိုအပ်သည့်အခါပြန်လာသောအချက်အလက်များကိုရယူရန်တောင်းဆိုမှုကိုတစ်ချိန်တည်းတွင်တောင်းဆိုနိုင်သည်။

  • အကြီးစားတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများ - ပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်တောင်းဆိုမှုများကိုထိရောက်စွာပေးပို့ပါ။

6 ။ အကျဉ်းချုပ်

curl_mamulti_info_read () သည် PHP တွင် curl တောင်းဆိုမှုများစွာ၏ကွပ်မျက်မှုအဆင့်အတန်းကိုရယူရန် PHP တွင်အစွမ်းထက်။ လက်တွေ့ကျသောကိရိယာတစ်ခုပေးသည်။ ဤလုပ်ဆောင်မှုကိုအသုံးပြုပြီးအပြိုင်တောင်းဆိုမှုများ၏တိုးတက်မှုကိုအလွယ်တကူမထီမဲ့မြင်ပြုခြင်း, Crawler Development, Batch Data သည်တွားသွားဝါလားသို့မဟုတ်အပြိုင် API ခေါ်ဆိုမှုများ ,

  • သက်ဆိုင်သောတက်(ဂ်)များ:

    cURL