လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_multi_close ကို အသုံးပြု. အရင်းအမြစ်ယိုစိမ့်မှုကိုမည်သို့ကာကွယ်ရမည်

curl_multi_close ကို အသုံးပြု. အရင်းအမြစ်ယိုစိမ့်မှုကိုမည်သို့ကာကွယ်ရမည်

gitbox 2025-05-12

မြင့်မားသောတစ်ပြိုင်နက်တည်းနှင့်ပြတ်တောင်းပြတ်တောင်းပြုပြင်ရေးအခြေအနေများတွင် PHP ၏ curl_multi စီးရီးများသည်အလွန်အသုံးများလေ့ရှိသည်။ သို့သော် developer များစွာသည်အသုံးပြုစဉ်အတွင်းအရင်းအမြစ်ဖြန့်ချိမှုပြ end နာများကိုလျစ်လျူရှုထားပြီးမှတ်ဉာဏ်ယိုစိမ့်မှုသို့မဟုတ်ဖိုင်လက်ကိုင်ယိုစိမ့်မှုများဖြစ်ပေါ်လာသည်။ ဤဆောင်းပါးသည် PHP တွင်အရင်းအမြစ်ယိုစိမ့်မှုများကို စင်ကဲစဲပို့ထား သည့်သယံဇာတအတွင်းယိုစိမ့်မှုများကိုမည်သို့မှန်ကန်စွာတားဆီးနိုင်ကြောင်းအသေးစိတ်ရှင်းပြပါလိမ့်မည်။

PHP တွင် curl_multi_ * လုပ်ဆောင်ချက်များသည်သင့်အားတစ်ချိန်တည်းတွင် curl session များစွာကိုကိုင်တွယ်ရန်ခွင့်ပြုသည်။ သို့သော်တစ်ပြိုင်နက်တည်းတွင်အရင်းအမြစ်များကိုမှန်ကန်စွာမပိတ်နိုင်ပါက, သယံဇာတများမှန်ကန်စွာမပိတ်နိုင်ပါကမှတ်ဥာဏ်စုဆောင်းခြင်းသို့မဟုတ် descriptor ပင်ပန်းခြင်းကိုဖြစ်ပေါ်စေနိုင်သည်။

1 ။ curl_multi_close ဆိုတာဘာလဲ။

curl_multi_close () ကို curl_multi_init မှဖန်တီးထားသော Multi-curl လက်ကိုင်ကိုပိတ်ရန်အသုံးပြုသည်။ Multi Multi Multielies တွင်ထည့်သွင်းထားသောဆံပင်ကြိုးတစ်ချောင်းကိုအလိုအလျောက်မပိတ်ပါ ။ ဆိုလိုသည်မှာသင် curl_multi_add_handle () မှတဆင့်ထည့်သွင်းထားသော curl session တစ်ခုချင်းစီကိုကိုယ်တိုင်ပိတ်ရန်လိုအပ်သည်။

အကယ်. သာ curlfulti_close () ကိုသာဟုခေါ်ပါက,

2 ။ မှန်ကန်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုလုပ်ငန်းစဉ်

ယိုစိမ့်မှုကိုအကောင်အထည်ဖော်ရန်မှန်ကန်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုလုပ်ငန်းစဉ်သည် -

  1. curl_init ကို သုံး. တစ်ခုတည်းတောင်းဆိုမှုကိုဖန်တီးပါ။

  2. curl_multi_init ကို သုံး. Multi လက်ကိုင်ကိုဖန်တီးပါ။

  3. Multi Matchi Multi Match သို့တစ်ခုတည်းတောင်းဆိုမှုကိုထည့်သည်။

  4. status ကိုအဘို့အ execute နှင့်နားထောင်ပါ။

  5. တစ်ခုချင်းစီကိုတစ် ဦး ချင်းစီတောင်းဆိုမှုကိုလက်ကိုင်ဖယ်ရှားပါ။

  6. Multi လက်ကိုင်ပိတ်ပါ။

3 ။ နမူနာကုဒ်

ဤတွင်အပြီးသတ်စံနမူနာကောင်းတစ်ခုဖြစ်ပြီးဒိုမိန်းအမည်ကို 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;
?>

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

  • ကိုယ်ပွားကိုလက်ကိုင် ( curl_multi_remove_handle ) ကို ဦး စွာဖယ်ရှားပစ် ရမည် , ထို့နောက် ( curl_close ) အသီးသီးပိတ်ထားရမည်။

  • နောက်ဆုံးအနေဖြင့် Curl_multi_Close ဟုခေါ်သည်။

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

Curl_multi_close နှင့်ဆက်စပ်သောအရင်းအမြစ်စီမံခန့်ခွဲမှုများကိုမှန်ကန်သောအသုံးပြုမှုကိုမှန်ကန်စွာအသုံးပြုခြင်းသည်သင်၏ PHP အစီအစဉ်ကိုပိုမိုထိရောက်စွာထိရောက်စွာအသုံးပြုနိုင်သည်။