PHP တွင် curl_multi_ * သည်တောင်းဆိုမှု၏ထိရောက်မှုကိုတိုးတက်စေရန်တစ်ချိန်တည်းတွင်ပင်ဆံပင်ကောက်ကောက်တောင်းဆိုမှုများကိုစတင်ရန်အသုံးပြုသည်။ သို့သော်သင် Curl_multi_Close ဟုခေါ်သည့်အခါသင်က curl session တစ်ခုအဆုံးသတ်ရန်သင်တောင်းဆိုမှု၏ပြန်လည်ရလဒ်ကိုမရနိုင်ပါ။ curl_multi_close ဟုခေါ်ဆိုပြီးနောက်တောင်းဆိုမှုတစ်ခုချင်းစီ၏ပြန်လာရလဒ်ကိုရရန်လှည့်ကွက်အချို့လိုအပ်သည်။
ဤဆောင်းပါးတွင် curl_multi_close ပြီးနောက်တောင်းဆိုမှုများအားလုံး၏ပြန်လာရလဒ်ကိုမည်သို့မှန်ကန်စွာရယူရမည်ကိုကျွန်ုပ်တို့ရှင်းပြပါမည်။
curl_multi_close ကို ခေါ်ပြီးနောက် Curl တောင်းဆိုမှုတစ်ခုစီ၏တုန့်ပြန်မှုအကြောင်းအရာများကို curl_multi_getcontent မှတဆင့်ရယူနိုင်သည်။ ပြန်လာသောရလဒ်အားလုံးကိုမှန်ကန်စွာရရှိရန်အတွက်တောင်းဆိုမှုတစ်ခုစီ၏ရလဒ်များကိုဆံပင်ကောက်ကောက်မပိတ်မီထိန်းသိမ်းထားရန်လိုအပ်သည်။
ဤတွင်ပြည့်စုံသောဥပမာတစ်ခုမှာ -
<?php
// ဖြစ်ပေါ်လာခြင်းcURLလက်ကိုင်
$urls = [
'https://gitbox.net/api/endpoint1',
'https://gitbox.net/api/endpoint2',
'https://gitbox.net/api/endpoint3'
];
$multiCurl = curl_multi_init();
$curlHandles = [];
// တစ်ခုချင်းစီသည်URLဖန်တီးcURLလက်ကိုင်并添加到多重请求队列
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // ပြန်လာသောအကြောင်းအရာကိုရယူပါ
curl_multi_add_handle($multiCurl, $ch);
$curlHandles[] = $ch;
}
// တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ပါ
$running = null;
do {
curl_multi_exec($multiCurl, $running);
curl_multi_select($multiCurl);
} while ($running > 0);
// တစ်ခုချင်းစီကိုတောင်းဆိုမှု၏ရလဒ်ကိုရယူပါ
$responses = [];
foreach ($curlHandles as $ch) {
$responses[] = curl_multi_getcontent($ch);
curl_multi_remove_handle($multiCurl, $ch); // 从多重请求队列中移除လက်ကိုင်
}
// ရုပ်သိမ်းခြင်းcURLစကားစမြည်ဝိုင်းများစွာ
curl_multi_close($multiCurl);
// တစ်ခုချင်းစီကိုတောင်းဆိုမှုအတွက်ပြန်လာရလဒ် output ကို
foreach ($responses as $response) {
echo $response . "\n";
}
?>
မျိုးစုံတောင်းဆိုခြင်းလက်ကိုင်များကို အစပြု . :
URLs အားလုံးကိုတောင်းဆိုရန် URL များကိုသိမ်းဆည်းရန်ပထမ ဦး ဆုံး URLs တစ်ခုသတ်မှတ်ထားသည်။ ဤဥပမာတွင် URL အားလုံးကို GitBox.net domain names များဖြင့်အစားထိုးထားသည်။
URL တစ်ခုချင်းစီအတွက် chl လက်ကိုင်ကို CHLECT ကိုဖန်တီးပြီး curl session ကိုထည့်ပါ။
တောင်းဆိုမှုကိုလုပ်ဆောင်ပါ ။
session တစ်ခုအနေဖြင့်တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ရန် curl_multi_exec () ကို သုံးပါ။ ကျွန်ုပ်တို့သည်တောင်းဆိုမှုပြီးဆုံးသည်အထိကျွန်ုပ်တို့သည်ပျင်းရိခြင်းမပြုရန်သေချာစေရန် curl_multi_select () ကို အသုံးပြုသည်။
တောင်းဆိုမှုရလဒ်ကိုရယူပါ ။
တောင်းဆိုမှုများအားလုံးကိုပြီးစီးပြီးနောက် Curl_multi_getContent ($ ch) ကို အသုံးပြုသည် ။
သန့်ရှင်းရေးလုပ်သည် :
curl_multi_remove_handle ($ multicul, $ ch) ကို သုံး. curl_multi_close () curl_multi_close () ကို Curl_multi_close () ကို Curl_multi_close () ကိုသုံးသည်။
output တုံ့ပြန်မှုအကြောင်းအရာ :
နောက်ဆုံးအနေဖြင့် $ reses array နှင့်တောင်းဆိုမှုတစ်ခုချင်းစီ၏တုန့်ပြန်မှုအကြောင်းအရာများကိုထုတ်ပြန်ခြင်းကိုထုတ်ပေးသည်။
ပြတ်တောင်းပြတ်တောင်းအပြောင်းအလဲအတွက် - curl_multi_ * function ၏အကြီးမားဆုံးအားသာချက်များမှာတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုပေးပို့နိုင်သည်။ ၎င်းသည်တစ်ပြိုင်တည်းတောင်းဆိုမှုများအတွက်အထူးအသုံးဝင်သည်။ Multi- တောင်းဆိုမှုမြင်ကွင်းတွင်ပင် curl_mamulti_getcontent သည် တောင်းဆိုမှုတစ်ခုစီ၏ပြန်လာရလဒ်ကိုမှန်ကန်စွာရရှိနိုင်ပါသည်။
အချိန်ကြာမြင့်စွာလုပ်ဆောင်ရန်တောင်းဆိုခြင်း - အစစ်အမှန်ဖြစ်ရပ်များတွင် curlopt_Timeout ကဲ့သို့သောတောင်းဆိုမှုတစ်ခုစီအတွက် server တုံ့ပြန်မှုကြောင့်အခြားတောင်းဆိုမှုများကိုပိတ်ဆို့ခြင်းကိုရှောင်ရှားရန်တောင်းဆိုမှုတစ်ခုစီအတွက်အချိန်ကုန်ရန်လိုအပ်သည်။
အမှားကိုင်တွယ်ခြင်း - ဆံပင်ကောက် ကောက် ကိုအသုံးပြုသောအခါတောင်းဆိုမှုသည်အောင်မြင်မှုရှိ / မရှိစစ်ဆေးရန်သတိရပါ။