PHP တွင် curl_multi_ * လုပ်ဆောင်ချက်များသည် curlti_ * လုပ်ဆောင်ချက်များသည်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများကိုပြုလုပ်နိုင်သည်။ ဤရှုထောင့်ကတောင်းဆိုမှုများတွင် curl_getinfo သည် HTTP အခြေအနေကုဒ်, တောင်းဆိုထားသော URL, ထုတ်လွှင့်သော URL, ထုတ်လွှင့်သော itc ကိုအသုံးပြုပြီးအချက်အလက်များအားပြန်လည်ထူထောင်ခြင်း,
Curl_multi_close သုံး. တောင်းဆိုမှုများစွာဖြင့်တောင်းဆိုမှုများစွာနှင့်အချက်အလက်များကိုထပ်တူပြုခြင်းနှင့်ပတ်သက်သောဒေတာထပ်တူပြုခြင်းဆိုင်ရာပြ issues နာများကိုထုတ်ယူခြင်းနှင့်ပတ်သက်ပြီးဒေတာထပ်တူပြုခြင်းပြ issues နာများကိုရှောင်ရှားရန်ဤဆောင်းပါးသည်ဤဆောင်းပါးတွင်ဆွေးနွေးပါမည် ။
PHP တွင် curl_multi_ * function သည် curl_multi_ * function ကတစ်ပြိုင်နက်တည်း curl တောင်းဆိုမှုများကိုစတင်ရန်ခွင့်ပြုသည်။ ဥပမာအားဖြင့် curl_multi_init ကို curl_multi_init ကိုသုံးပါ, curl_multi_add_handle ကိုသုံးပါ ။ နောက်ဆုံးတွင် curl_multi_close သုံး. session ကိုပိတ်ပါ။
ဤတွင်ရိုးရှင်းသောဥပမာတစ်ခုဖြစ်သည်။
$mh = curl_multi_init(); // ဖြစ်ပေါ်လာခြင်း multi curl လက်ကိုင်
$ch1 = curl_init("http://gitbox.net/api/data1"); // မေးမြန်း 1
$ch2 = curl_init("http://gitbox.net/api/data2"); // မေးမြန်း 2
curl_multi_add_handle($mh, $ch1); // 添加မေးမြန်း 1
curl_multi_add_handle($mh, $ch2); // 添加မေးမြန်း 2
do {
$mrc = curl_multi_exec($mh, $active);
} while ($active && $mrc == CURLM_OK);
curl_multi_remove_handle($mh, $ch1); // 移除မေးမြန်း 1
curl_multi_remove_handle($mh, $ch2); // 移除မေးမြန်း 2
curl_multi_close($mh); // ရုပ်သိမ်းခြင်း multi curl လက်ကိုင်
တောင်းဆိုမှုများကိုတစ်ပြိုင်နက်တည်းကွပ်မျက်ခံရသောအခါတောင်းဆိုမှုများအားလုံးပြီးဆုံးပြီးနောက်ကျွန်ုပ်တို့သည်များသောအားဖြင့်သူတို့၏အသေးစိတ်အချက်အလက်များကိုရလိုကြသည်။ curl_getinfo function ကို Returned status code code (curlinfo_http_code) နှင့်အခြား metadata ကဲ့သို့သော curlinfo_htt_code) နှင့်အခြား metadata ကဲ့သို့သော curlinfo_http_code ) နှင့်အခြား metadata ကဲ့သို့သော curlinfo_http_code) နှင့်အခြား metadata ကဲ့သို့သော curlinfo_http_code ဖြစ်သည်။ သို့သော်တောင်းဆိုမှုများစွာကိုအကန့်အသတ်ဖြင့်ပြုလုပ်ရန်တောင်းဆိုမှုများကိုအပြိုင်ပြုလုပ်ရန်နှင့်အပြိုင်ပြုလုပ်သောကြောင့် Curl_getIFO ကို တောင်းဆိုမှုအပြည့်အဝမလုပ်ဆောင်မီအချက်အလက်များပြန်လည်ထုတ်ယူခြင်းမပြုရန်သေချာစေရန်သင့်တော်သောအချိန်တွင်သင့်တော်သောအချိန်၌တောင်းဆိုရန်လိုအပ်သည်။
အကယ်. သင်တောင်းဆိုမှုမပြည့်မီ curl_getinfo ဟုသင်ခေါ်ဆိုပါကသင်မှားယွင်းသောသို့မဟုတ်မပြည့်စုံသောအချက်အလက်များရနိုင်သည်။ ထို့ကြောင့်ထပ်တူပြုခြင်း၏ကျိုးကြောင်းဆီလျော်သောအချိန်ကိုက်ခြင်းသည်အလွန်အရေးကြီးသည်။
curl_multi_exec ဟုခေါ်သောအခါတောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ရန် PHP သည် loop တစ်ခုသို့ 0 င်ရောက်လိမ့်မည်။ ဤဖြစ်စဉ်တွင် curl_mamulti_select သည် ကျွန်ုပ်တို့အားရပ်တည်ရန်ကျွန်ုပ်တို့အားကိုင်တွယ်ဖြေရှင်းရန်ကျွန်ုပ်တို့အားကိုင်တွယ်ဖြေရှင်းရန်ကူညီပေးနိုင်သည်။
do {
// 等待မေးမြန်း完成
$mrc = curl_multi_exec($mh, $active);
// ဒေတာအဆင်သင့်သည်အထိစောင့်ပါ
if ($active) {
curl_multi_select($mh);
}
} while ($active && $mrc == CURLM_OK);
တောင်းဆိုမှုများအားလုံးကိုပြီးဆုံးသွားပြီးလက်ကိုင်အားလုံးကိုဖယ်ရှားပြီးသည်နှင့်တပြိုင်နက်တောင်းဆိုချက်အချက်အလက်များကိုရယူရန်အချိန်ကောင်းဖြစ်သည်။ ဒီလိုမှမဟုတ်ရင်သင်ဟာလက်ကိုင်ကိုကြိုတင်ပြင်ဆင်ထားမယ်ဆိုရင်သင်တောင်းဆိုချက်တွေရဲ့ရလဒ်ကိုသင်လွဲချော်နိုင်တယ်။
// 获取မေးမြန်း信息
$info1 = curl_getinfo($ch1);
$info2 = curl_getinfo($ch2);
// ထုတ်ပေးသတင်းအချက်အလက်
echo "Request 1 HTTP Code: " . $info1['http_code'] . "\n";
echo "Request 2 HTTP Code: " . $info2['http_code'] . "\n";
ဒေတာကိုရယူပြီးနောက်တွင် curl_multi session တစ်ခုမှလက်ကိုင်တစ်ခုစီကိုဖယ်ရှားပြီးအဆုံးမှာပိတ်ထားပါ။ ၎င်းသည်တံခါးပိတ်တောင်းဆိုချက်၏ရလဒ်များကိုရရန်ကြိုးပမ်းမှုမရှိတော့ပါ။
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
အထက်ဖော်ပြပါပေါင်းစပ်မှုနှင့်အတူပေါင်းစပ်ပြီးဤတွင်ပိုမိုပြည့်စုံသောဥပမာတစ်ခုမှာတောင်းဆိုမှုတစ်ခုစီ၏အသေးစိတ်အချက်အလက်များကိုမှန်ကန်စွာမည်သို့ရယူရမည်နှင့်ဒေတာထပ်တူပြုခြင်းကိစ္စများမရှိပါ။
$mh = curl_multi_init(); // ဖြစ်ပေါ်လာခြင်း multi curl လက်ကိုင်
$ch1 = curl_init("http://gitbox.net/api/data1"); // မေးမြန်း 1
$ch2 = curl_init("http://gitbox.net/api/data2"); // မေးမြန်း 2
curl_multi_add_handle($mh, $ch1); // 添加မေးမြန်း 1
curl_multi_add_handle($mh, $ch2); // 添加မေးမြန်း 2
// 执行မေးမြန်း并等待完成
do {
$mrc = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh); // ဒေတာအဆင်သင့်ဖြစ်ရန်စောင့်ပါ
}
} while ($active && $mrc == CURLM_OK);
// 获取မေးမြန်း的执行信息
$info1 = curl_getinfo($ch1);
$info2 = curl_getinfo($ch2);
// 输出မေးမြန်း信息
echo "Request 1 HTTP Code: " . $info1['http_code'] . "\n";
echo "Request 2 HTTP Code: " . $info2['http_code'] . "\n";
// 移除လက်ကိုင်
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
// ရုပ်သိမ်းခြင်း multi curl လက်ကိုင်
curl_multi_close($mh);
curl_multi_exec နှင့် curl_multi_selecte ကို မှန်ကန်စွာ အသုံးပြု. သတင်းအချက်အလက်များကို curl_getinfo မှတစ်ဆင့်ရရှိသောအချက်အလက်များကို curl_getinfo မှတစ်ဆင့်ရရှိသောအချက်အလက်များကိုရရှိသောအချက်အလက်များကိုရရှိသောကြောင့်ပြတ်တောင်းပြတ်တောင်းတောင်းဆိုမှုများကြောင့်ဖြစ်ရတဲ့ data ထပ်တူပြုခြင်းပြ problems နာများကိုထိရောက်စွာရှောင်ရှားနိုင်သည်။ တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုပြုပြင်ခြင်းအတွက်အချိန်ကိုက်သည်အလွန်အရေးကြီးသည်။ ကျိုးကြောင်းဆီလျော်စွာခေါ်ဆိုမှုအမိန့်နှင့်ထပ်တူပြုခြင်းမဟာဗျူဟာသည်မှန်ကန်သောအချက်အလက်များကိုရရှိသောနည်းလမ်းများကိုသေချာစေနိုင်သည်။