တစ်ပြိုင်နက်တည်း http တောင်းဆိုမှုများကိုကိုင်တွယ်သည့်အခါ curl_multi စီးရီးလုပ်ဆောင်ချက်များသည် PHP တွင်အလွန်လက်တွေ့ကျသောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းတို့အနက် curl_multi_close သည် Curl_multi_init မှဖန်တီးထားသောအရင်းအမြစ်များကိုထုတ်ပြန်ရန်အသုံးပြုသောနောက်ဆုံးအဆင့်တွင်မရှိမဖြစ်လိုအပ်သောအဆင့်တစ်ခုဖြစ်သည်။ ဤဆောင်းပါးသည် curl_multi_close ၏မှန်ကန်သောအသုံးပြုမှုကိုရှင်းပြပြီးလက်တွေ့စွမ်းအင်ယိုစိမ့်မှုပြ problems နာများကိုရှောင်ရှားရန်သင့်အားလက်တွေ့ကျပုံဥပမာကိုရှင်းပြပါမည်။
curl_multi_init ကို သုံး. PHP သည် MultiptiMulti_init ကို အသုံးပြု. Multi Multi Multi Multi Multi Multi Multi ကိုဖန်တီးသည်ဆိုပါစို့ PHP သည် multipi multipi multi multi multi multies နှင့်၎င်းတွင်ပါ 0 င်သောတောင်းဆိုမှုများကိုစီမံရန်ခွဲဝေချထားပေးသည်။ curl_close နှင့်အတူ ( curl_init မှထုတ်လုပ်သည်) တစ်ခုတည်းသောကိုယ်ပွားလက်ကိုင်တစ်ခုအား curl_close နှင့်ပင်ပိတ်ထားလျှင်ပင် Multi Multi Multi Multi Multi Multi Multi Multi လက်ကိုင်သည် system အရင်းအမြစ်များကိုသိမ်းပိုက်ဆဲဖြစ်သည်။
သင် curl_multi_close ကို သုံးရန်မေ့နေပါက၎င်းသည်ယေဘုယျယိုစိမ့်မှုနှင့်မြင့်မားသောတစ်ပြိုင်နက်တည်းကတစ်ပြိုင်နက်တည်းကယိုစိမ့်မှုနှင့်ပရိုဂရမ်ပျက်ကျမှုကိုဖြစ်ပေါ်စေသည်။
ထို့ကြောင့် တစ်ပြိုင်တည်းတောင်းဆိုမှုများပြီးဆုံးသွားသောအခါ curl_multi_Close ကို သယံဇာတအားလုံးလုံးလျားလျားလွတ်မြောက်ရန်ခေါ်ရမည် ။
curl_multi စီးရီးလုပ်ဆောင်ချက်များကို အသုံးပြု. အထွေထွေဖြစ်စဉ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
Multi Matchi Multi Multi ( Curl_maulti_init ) ဖန်တီးပါ။
သီးခြားဆံပင်ကောက်ကောက်အမျိုးအစားများကိုဖန်တီးပြီး configure လုပ်ပါ ( curl_init )
curl လက်ကိုင်တစ်ခုချင်းစီကိုလက်ကိုင်ကို Multi Matchiely ( curl_maulti_add_handle ) သို့ထည့်ပါ။
တောင်းဆိုမှုအားလုံးကို Execute လုပ်ပြီးစောင့်ကြည့်ပါ ( curl_mamulti_exec နှင့် curl_multi_sselect )
တစ်ခုတည်းလက်ကိုင် ( curl_multi_remove_handle ) ကိုဖယ်ရှားပါ ( curl_close )
နောက်ဆုံးတွင် Multi Matchi Multi Multi ( Curl_multi_close )
ဤတွင်အပြည့်အဝဥပမာတစ်ခုမှာ URL များကိုတစ်ချိန်တည်းတွင်မည်သို့တောင်းဆိုခြင်းနှင့်သက်ဆိုင်ရာအရင်းအမြစ်များအားလုံးကိုမှန်ကန်စွာသန့်ရှင်းရေးလုပ်ရမည်ကိုပြသသည့်ပြည့်စုံသောဥပမာတစ်ခုမှာ -
<?php
// တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများပေးပို့ဖို့URLစာရင်း
$urls = [
"https://gitbox.net/api/endpoint1",
"https://gitbox.net/api/endpoint2",
"https://gitbox.net/api/endpoint3",
];
// ဖြစ်ပေါ်လာခြင်း multi handle
$multiHandle = curl_multi_init();
$curlHandles = [];
// ဖြစ်ပေါ်လာခြင်း每个单独的 curl handle နှင့်ပူးပေါင်းပါ multi handle
foreach ($urls as $key => $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multiHandle, $ch);
$curlHandles[$key] = $ch;
}
// တောင်းဆိုမှုကို execute
$running = null;
do {
$status = curl_multi_exec($multiHandle, $running);
if ($status > CURLM_OK) {
// အမှားကိုင်တွယ်
echo "cURL error: " . curl_multi_strerror($status);
break;
}
// တက်ကြွစွာဆက်သွယ်မှုကိုစောင့်ဆိုင်း
curl_multi_select($multiHandle);
} while ($running > 0);
// တုံ့ပြန်မှုရလဒ်များကိုစုဆောင်းပါ
$responses = [];
foreach ($curlHandles as $key => $ch) {
$responses[$key] = curl_multi_getcontent($ch);
// ကလေးတစ် ဦး ချင်းစီကိုဖယ်ရှားခြင်းနှင့်ပိတ်ပါ handle
curl_multi_remove_handle($multiHandle, $ch);
curl_close($ch);
}
// နောက်ဆုံးအနီးကပ် multi handle
curl_multi_close($multiHandle);
// output ကိုတုံ့ပြန်မှု
foreach ($responses as $index => $response) {
echo "Response from URL {$urls[$index]}:" . PHP_EOL;
echo $response . PHP_EOL . PHP_EOL;
}
?>
တစ် ဦး ချင်းကောက်ကောက်လက်ကိုင်များကိုအရင်ဖယ်ရှားပါ , ပြီးနောက်သူတို့ကိုပိတ်ပါ။
Multi Matchi ကိုတိုက်ရိုက်မပိတ်ပါနှင့်။
အဆင့်မြင့်တစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်တွင်ရေရှည်ပိတ်ဆို့မှုကိုကာကွယ်ရန်အချိန်ကုန်ဆုံး ( curlopt_timeout ) ထည့်ရန်အကြံပြုသည်။
curl_multi_close သည် အရင်းအမြစ်များကိုကျိုးကြောင်းဆီလျော်သောဖြန့်ချိမှုကိုသေချာစေရန်နောက်ဆုံးအဆင့်ဖြစ်သည်။ အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းဖြစ်ရပ်များတွင်ကောင်းမွန်သောပိတ်ခြင်းအလေ့အထများကိုမွေးမြူရန်အလွန်အရေးကြီးသည်။ အပိုဒ်ကိုလက်ကိုင်ဖုန်းတစ်ခုစီကိုမှန်ကန်စွာသန့်ရှင်းရေးလုပ်ပြီးနောက်ဆုံးတွင် Multi Multi Friend ကိုပိတ်ပစ်ခြင်းသည်သယံဇာတများယိုစိမ့်မှုနှင့် PHP application များ၏တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုထိရောက်စွာတားဆီးနိုင်သည်။