လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_multi_cloce အသုံးပြုမှုဥပမာ - တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုဘယ်လိုကိုင်တွယ်ရမလဲ

curl_multi_cloce အသုံးပြုမှုဥပမာ - တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုဘယ်လိုကိုင်တွယ်ရမလဲ

gitbox 2025-05-12

မျက်မှောက်ခေတ် Web Development တွင်စွမ်းဆောင်ရည်ကောင်းမွန်မှုသည်အမြဲတမ်းအရေးကြီးသောအကြောင်းအရာဖြစ်သည်။ အထူးသဖြင့် HTTP တောင်းဆိုမှုများကိုစတင်ရန်လိုအပ်သည့်အခါ, PHP သည် curl_multi_ * စီးရီးလုပ်ဆောင်ချက်များသည် developer များကိုတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုများစွာတိုးတက်အောင်လုပ်နိုင်သည်

Curl_multi_close ၏အသုံးပြုမှုအကြောင်းပိုမိုလေ့လာကြည့်ကြပါစို့နှင့်တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုမည်သို့စီမံရမည်ကိုရှင်းပြရန်အမှန်တကယ်ဥပမာဖြင့်ပေါင်းစပ်ပါ။

PHP တွင် curl_mamulti_close () သည် ဆံပင်ကောက်ကောက်အမျိုးမျိုးကို ပိတ်ရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ curl_multi_init ကို သုံး. Multi လက်ကိုင်ကိုဖန်တီးသောအခါ curl_multi_add_addle () တစ်ပြိုင်နက်တည်းလုပ်ဆောင်ရန်သီးခြားဆံပင်ကောက်ကောက်အမျိုးမျိုးကိုထည့်သွင်းပါ

အခြေခံအဆလုပ်ငန်းခြေလှမ်းများ

တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများ၏ပုံမှန်အတိုင်းအပြည့်အဝအပြည့်အဝဖြစ်စဉ်မှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. Multi Multi Multi ။

  2. မျိုးစုံလွယ်ကူသောလက်ကိုင်များကိုဖန်တီးပြီးသက်ဆိုင်ရာ URL နှင့် options များကိုသတ်မှတ်ပါ။

  3. Multi Multi Multi Multipi မှလွယ်ကူစွာကိုင်တွယ်ပါ။

  4. Multi လက်ကိုင်ကို execute ။

  5. လွယ်ကူသောလက်ကိုင်တစ်ခုချင်းစီကိုဖယ်ရှားခြင်းနှင့်ပိတ်ပါ။

  6. နောက်ဆုံးတွင် multi လက်ကိုင် ( curl_maulti_close () ) ကိုပိတ်ပါ။

နမူနာကုဒ်

Curlfulti_close () ကို မည်သို့ကောင်းမွန်စွာအသုံးပြုရမည်ကိုပြသသောပြည့်စုံသောဥပမာတစ်ခုမှာတစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုစီမံခန့်ခွဲရန်

 <?php

// တောင်းဆိုခံရဖို့ URL စာရင်း
$urls = [
    'https://gitbox.net/api/data1',
    'https://gitbox.net/api/data2',
    'https://gitbox.net/api/data3',
];

// ဖြစ်ပေါ်လာခြင်း multi handle
$multiHandle = curl_multi_init();
$curlHandles = [];

// ဖြစ်ပေါ်လာခြင်း每个 cURL easy handle,နှင့်ထည့်ပါ multi handle
foreach ($urls as $i => $url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

    curl_multi_add_handle($multiHandle, $ch);
    $curlHandles[$i] = $ch;
}

// ကရိယာတန်းဆာ multi handle
$running = null;
do {
    $status = curl_multi_exec($multiHandle, $running);
    if ($running) {
        // တက်ကြွစွာဆက်သွယ်မှုကိုစောင့်ဆိုင်း
        curl_multi_select($multiHandle);
    }
} while ($running > 0);

// ထုတ်ယူခြင်းရလဒ်များ
foreach ($curlHandles as $ch) {
    $content = curl_multi_getcontent($ch);
    $info = curl_getinfo($ch);

    echo "မေးမြန်း URL: " . $info['url'] . PHP_EOL;
    echo "HTTP အခြေအနေကုဒ်: " . $info['http_code'] . PHP_EOL;
    echo "အကြောင်းအရာကိုပြန်သွားပါ: " . substr($content, 0, 100) . "..." . PHP_EOL;
    echo str_repeat("-", 50) . PHP_EOL;

    // ဖယ်ရှားခြင်းနှင့်ပိတ်ပါ easy handle
    curl_multi_remove_handle($multiHandle, $ch);
    curl_close($ch);
}

// ရုပ်သိမ်းခြင်း multi handle
curl_multi_close($multiHandle);
?>

အဓိကမှတ်စုများ

  • လွယ်ကူသောလက်ကိုင်များအားလုံးဖယ်ရှားခံရပြီးနောက် curl_multi_close () ကို သေချာစွာခေါ်ပါ။

  • သင် curl_multi_close () ကို ဖုန်းဆက်ရန်မေ့သွားပါကအရင်းအမြစ်ကို PHP မှအလိုအလျောက်ဖြန့်ချိနိုင်သော်လည်းအထူးသဖြင့်ရေရှည်လည်ပတ်မှုသို့မဟုတ်မြင့်မားသောတစ်ပြိုင်တည်းလည်ပတ်မှုသို့မဟုတ်မြင့်မားသောတစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်တွင်ဖြစ်သည်။

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

အကျဉ်းချုပ်

curl_multi_close () ကို စနစ်တကျသုံးခြင်းအားဖြင့်, တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုကိုစီမံခန့်ခွဲမှုသည်ထိရောက်သောနှင့်လုံခြုံမှုရှိကြောင်းသေချာစေရန်ဖြစ်နိုင်သည်။ သတိရပါ, တောင်းဆိုမှုများအားလုံးကို curl_multi ဖြင့်ပြုလုပ်ထားသောအခါ, သင်၏အစီအစဉ်အားကောင်းခြင်းနှင့်စွမ်းဆောင်ရည်ကိုထိန်းသိမ်းရန်လက်ကိုင်အရင်းအမြစ်များကိုသန့်ရှင်းအောင်လုပ်ပါ။