မြင့်မားသောတစ်ပြိုင်နက်တည်းနှင့်ပြတ်တောင်းပြတ်တောင်းပြုပြင်ရေးအခြေအနေများတွင် PHP ၏ curl_multi စီးရီးများသည်အလွန်အသုံးများလေ့ရှိသည်။ သို့သော် developer များစွာသည်အသုံးပြုစဉ်အတွင်းအရင်းအမြစ်ဖြန့်ချိမှုပြ end နာများကိုလျစ်လျူရှုထားပြီးမှတ်ဉာဏ်ယိုစိမ့်မှုသို့မဟုတ်ဖိုင်လက်ကိုင်ယိုစိမ့်မှုများဖြစ်ပေါ်လာသည်။ ဤဆောင်းပါးသည် PHP တွင်အရင်းအမြစ်ယိုစိမ့်မှုများကို စင်ကဲစဲပို့ထား သည့်သယံဇာတအတွင်းယိုစိမ့်မှုများကိုမည်သို့မှန်ကန်စွာတားဆီးနိုင်ကြောင်းအသေးစိတ်ရှင်းပြပါလိမ့်မည်။
PHP တွင် curl_multi_ * လုပ်ဆောင်ချက်များသည်သင့်အားတစ်ချိန်တည်းတွင် curl session များစွာကိုကိုင်တွယ်ရန်ခွင့်ပြုသည်။ သို့သော်တစ်ပြိုင်နက်တည်းတွင်အရင်းအမြစ်များကိုမှန်ကန်စွာမပိတ်နိုင်ပါက, သယံဇာတများမှန်ကန်စွာမပိတ်နိုင်ပါကမှတ်ဥာဏ်စုဆောင်းခြင်းသို့မဟုတ် descriptor ပင်ပန်းခြင်းကိုဖြစ်ပေါ်စေနိုင်သည်။
curl_multi_close () ကို curl_multi_init မှဖန်တီးထားသော Multi-curl လက်ကိုင်ကိုပိတ်ရန်အသုံးပြုသည်။ Multi Multi Multielies တွင်ထည့်သွင်းထားသောဆံပင်ကြိုးတစ်ချောင်းကိုအလိုအလျောက်မပိတ်ပါ ။ ဆိုလိုသည်မှာသင် curl_multi_add_handle () မှတဆင့်ထည့်သွင်းထားသော curl session တစ်ခုချင်းစီကိုကိုယ်တိုင်ပိတ်ရန်လိုအပ်သည်။
အကယ်. သာ curlfulti_close () ကိုသာဟုခေါ်ပါက,
ယိုစိမ့်မှုကိုအကောင်အထည်ဖော်ရန်မှန်ကန်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုလုပ်ငန်းစဉ်သည် -
curl_init ကို သုံး. တစ်ခုတည်းတောင်းဆိုမှုကိုဖန်တီးပါ။
curl_multi_init ကို သုံး. Multi လက်ကိုင်ကိုဖန်တီးပါ။
Multi Matchi Multi Match သို့တစ်ခုတည်းတောင်းဆိုမှုကိုထည့်သည်။
status ကိုအဘို့အ execute နှင့်နားထောင်ပါ။
တစ်ခုချင်းစီကိုတစ် ဦး ချင်းစီတောင်းဆိုမှုကိုလက်ကိုင်ဖယ်ရှားပါ။
Multi လက်ကိုင်ပိတ်ပါ။
ဤတွင်အပြီးသတ်စံနမူနာကောင်းတစ်ခုဖြစ်ပြီးဒိုမိန်းအမည်ကို GitBox.net ဖြင့်အစားထိုးထားသည်။
<?php
// မျိုးစုံသီးခြားစတင် cURL ရုံးထိုင်အချိန်ကာလ
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://gitbox.net/api/v1/resource1");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://gitbox.net/api/v1/resource2");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
// a cURL multi handle
$mh = curl_multi_init();
// နှစ်ခုသီးခြားလက်ကိုင်ပေါင်းထည့်ပါ multi handle
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
// ကရိယာတန်းဆာ multi handle
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
// တက်ကြွစွာဆက်သွယ်မှုကိုစောင့်ဆိုင်း
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);
// အကြောင်းအရာရယူပါ
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
// အရေးကြီးသောခြေလှမ်းများ:လက်ကိုင်နှင့်အနီးကပ်ဖယ်ရှားလိုက်ပါ
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_close($ch1);
curl_close($ch2);
// နောက်ဆုံးအနီးကပ် multi handle
curl_multi_close($mh);
// Return Data ကိုပုံနှိပ်ပါ
echo $response1;
echo $response2;
?>
ကိုယ်ပွားကိုလက်ကိုင် ( curl_multi_remove_handle ) ကို ဦး စွာဖယ်ရှားပစ် ရမည် , ထို့နောက် ( curl_close ) အသီးသီးပိတ်ထားရမည်။
နောက်ဆုံးအနေဖြင့် Curl_multi_Close ဟုခေါ်သည်။
မည်သည့်ခြေလှမ်းကိုမဆိုလျစ်လျူရှုခြင်းကိုလျစ်လျူရှုခြင်းသည်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းပတ် 0 န်းကျင်တွင်ပြ problems နာများကိုလျင်မြန်စွာကျယ်ပြန့်စေလိမ့်မည်။
Curl_multi_close နှင့်ဆက်စပ်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုများကိုမှန်ကန်သောအသုံးပြုမှုကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်သင်၏ PHP အစီအစဉ်ကိုပိုမိုထိရောက်စွာထိရောက်စွာအသုံးပြုနိုင်သည်။