လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_multi_multi_close မတိုင်မီပြန်လာသည့်အချက်အလက်များကိုမည်သို့လုပ်ဆောင်ရမည်နည်း

curl_multi_multi_close မတိုင်မီပြန်လာသည့်အချက်အလက်များကိုမည်သို့လုပ်ဆောင်ရမည်နည်း

gitbox 2025-05-12

PHP တွင်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက်ဆံပင်ကောက်ကောက်ကိုအသုံးပြုခြင်းသည်အထူးသဖြင့် HTTP တောင်းဆိုမှုများကိုတစ်ပြိုင်နက်တည်းထုတ်ပြန်ရန်လိုအပ်သည့်အခါအလေ့အကျင့်တစ်ခုဖြစ်သည်။ curl_multi_ * function function မိသားစုသည် curl_multi_close ကို curl_multi_close ကိုပိတ်ရန်အသုံးပြုသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်ရန်နည်းလမ်းဖြစ်သည်။

သို့သော်များသောအားဖြင့်ကျွန်ုပ်တို့သည် curl_multi_close မခေါ်မီတောင်းဆိုမှုတစ်ခုစီအတွက်ပြန်လာသောအချက်အလက်များကိုကျွန်ုပ်တို့လုပ်ဆောင်သည်။ တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုပြုလုပ်ရန်နှင့်လူပေါင်းစုံသော session ကိုမပိတ်မီပြန်လာသောအချက်အလက်များကိုစတင်ရန်ဘုံနည်းလမ်းတစ်ခုဖြစ်သည်။

အခြေခံအဆင့်များ

  1. burl multithreaded အစည်းအဝေးများကန ဦး

  2. တစ် ဦး multxreaded session တစ်ခုတောင်းဆိုချက်ကိုထည့်ပါ

  3. တောင်းဆိုမှုကို execute

  4. တောင်းဆိုမှုကိုရလဒ်ရယူပါ

  5. session ကိုပိတ်ပါ

Code Page

 <?php

// မျိုးစုံကိုအစပြု cURL လက်ကိုင်
$mh = curl_multi_init();

// မေးမြန်း URL စာရင်း
$urls = [
    "https://gitbox.net/api/data1",
    "https://gitbox.net/api/data2",
    "https://gitbox.net/api/data3"
];

// ကုန်လေှာင်ရုံ cURL လက်ကိုင်
$curl_handles = [];
$responses = [];

foreach ($urls as $index => $url) {
    // ဖြစ်ပေါ်လာခြင်း cURL ရုံးထိုင်အချိန်ကာလ
    $ch = curl_init();

    // တည်ဆောက်သည် cURL မေးမြန်း选项
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    // ထည့်သည် cURL 多线程ရုံးထိုင်အချိန်ကာလ中
    curl_multi_add_handle($mh, $ch);

    // ကုန်လေှာင်ရုံ每个လက်ကိုင်
    $curl_handles[$index] = $ch;
}

// ကရိယာတန်းဆာ所有မေးမြန်း
$running = null;
do {
    // ကရိယာတန်းဆာ cURL 多线程မေးမြန်း
    curl_multi_exec($mh, $running);
    curl_multi_select($mh);  // 等待မေးမြန်း完成
} while ($running > 0);

// 获取每个မေးမြန်း的响应
foreach ($curl_handles as $index => $ch) {
    // 获取单个မေးမြန်း的返回内容
    $response = curl_multi_getcontent($ch);
    
    // ပြန်လည်ပြုပြင်ခြင်းအချက်အလက်များ
    $responses[$index] = $response;

    // တစ်ခုတည်းကိုပိတ်ပါ cURL ရုံးထိုင်အချိန်ကာလ
    curl_multi_remove_handle($mh, $ch);
}

// ခေါ်ခြင်း curl_multi_close ဉီးစွာ,你可以处理每个မေးမြန်း的返回数据
foreach ($responses as $index => $response) {
    echo "Response from URL $index: " . substr($response, 0, 100) . "...\n";  // အကြောင်းအရာ၏ output ကိုအပိုင်း
}

// 关闭多线程ရုံးထိုင်အချိန်ကာလ
curl_multi_close($mh);

?>

code parsing

  1. Curl_multi_init ကိုအသုံးပြုပြီး multimeaded session ကိုအစပြု ပါ ။ ၎င်းသည်ကျွန်ုပ်တို့အားတောင်းဆိုမှုများကိုတစ်ပြိုင်တည်းလုပ်ဆောင်ရန်ခွင့်ပြုလိမ့်မည်။

  2. တောင်းဆိုရန်တောင်းဆိုချက် - curl_init မှတဆင့် curl_init မှတဆင့် curl_init မှတ ဆင့်တစ်ခုတည်း curl session တစ်ခုဖန်တီးပါ

  3. Execute တောင်းဆိုချက် - Curl_multi_exec ကို သုံးပါ။ Curl_multi_exec ကိုသုံးပါ။

  4. Report နှင့် Process Resourt Data : Curl_multi_getContent ကို သုံးပါ ဤအဆင့်တွင်သင်သည်အချို့သောဒေတာများပြုပြင်ခြင်းသို့မဟုတ် output လုပ်ငန်းများကိုလုပ်ဆောင်နိုင်သည်။

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

အကျဉ်းချုပ်

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

  • အပြိုင်အတွက်တောင်းဆိုမှုများကိုအကောင်အထည်ဖော်ရန် curl_multi_exec ကို သုံးပါ။

  • တစ်ခုချင်းစီကိုတောင်းဆိုမှုတစ်ခုချင်းစီ၏ပြန်လာသောအကြောင်းအရာကိုရရှိရန် curl_multi_getcontent ကို သုံးပါ။

  • တုံ့ပြန်မှုအားလုံးကိုပြုလုပ်ပြီးနောက် curl session ကိုပိတ်ပါ။

ဤနည်းလမ်းသည်သင့်အားစာပေါင်းစုံသော session ကိုမပိတ်မီတောင်းဆိုမှုတစ်ခုစီအတွက်ပြန်လာသောအချက်အလက်များကိုအပြည့်အဝလုပ်ဆောင်ရန်ခွင့်ပြုသည်။