PHP တွင်ဆံပင်ကောက်ကောက်သည် 0 က်ဘ်၏ 0 က်ဘ်စာမျက်နှာများကို 0 င်ရောက်ခြင်းသို့မဟုတ် 0 က်ဘ်၏စာမျက်နှာများကိုရယူခြင်းကဲ့သို့သောကွန်ယက်တောင်းဆိုမှုများအတွက်အားကောင်းသောစာကြည့်တိုက်ဖြစ်သည်။ Curl_init () , curl_exec () ကို အသုံးပြု. လက်ကိုင်ကိုအစပိုင်းတွင်စတင်ရန်အတွက်ပုံမှန်ဖြစ်စဉ်ကိုစတင်ရန်ပုံမှန်ဖြစ်စဉ်တစ်ခုဖြစ်သည်။ သို့သော်, တစ်ပြိုင်တည်းတောင်းဆိုမှုများကိုကိုင်တွယ်သည့်အခါအထူးသဖြင့် curl_multi_ * စီးရီးလုပ်ဆောင်ချက်များကိုအသုံးပြုသည့်အခါအထူးသဖြင့်အရင်းအမြစ်များကိုစနစ်တကျအနီးကပ်သန့်ရှင်းရေးလုပ်ရန်အထူးအရေးကြီးသည်။ ထိုသို့ပြုလုပ်ရန်ပျက်ကွက်ခြင်းသည်မှတ်ဉာဏ်ယိုစိမ့်မှုသို့မဟုတ်ကွန်ယက်ချိတ်ဆက်မှုပြ problems နာများကိုဖြစ်ပေါ်စေနိုင်သည်။
တောင်းဆိုမှုတစ်ခုတည်းတွင်ပုံမှန်ကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/api/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch); // အရင်းအမြစ်များကိုမှန်ကန်စွာဖြန့်ချိ
ဤတွင် curl_close ($ ch) လိုအပ်သည်။ ၎င်းသည် curl_init () မှဖန်တီးထားသောဆံပင်ကောက်ကောက်လက်ကိုင်ကိုပိတ်ပြီးသက်ဆိုင်ရာအရင်းအမြစ်များကိုလွှတ်ပေးသည်။
တောင်းဆိုမှုများစွာကိုအချိန်တိုင်းအစပြုရန်တောင်းဆိုမှုများလိုအပ်သည့်ဖြစ်ရပ်များအတွက် PHP သည် curl_multi_ * interface ကိုပေးသည်။ ဥပမာများမှာအောက်ပါအတိုင်းဖြစ်သည် -
$urls = [
'https://gitbox.net/api/one',
'https://gitbox.net/api/two',
'https://gitbox.net/api/three',
];
$multiHandle = curl_multi_init();
$curlHandles = [];
foreach ($urls as $url) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multiHandle, $ch);
$curlHandles[] = $ch;
}
// တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ပါ
$running = null;
do {
curl_multi_exec($multiHandle, $running);
curl_multi_select($multiHandle);
} while ($running > 0);
// ရလဒ်များကိုရယူပါ
$responses = [];
foreach ($curlHandles as $ch) {
$responses[] = curl_multi_getcontent($ch);
}
ယခုအချိန်တွင်သင်သည်နောက်တစ်ဆင့် curl_multi_remove_handle နှင့် curl_close နှင့် curl_close နှင့် curl_close နှင့် curl_close နှင့် curl_close နှင့် curl_close ကိုမလုပ်ဆောင်ပါကဤအချိန်တွင်အရင်းအမြစ်ကိုထုတ်ပြန်ခြင်းမရှိပါ။
တောင်းဆိုမှုများအားလုံးကိုအကောင်အထည်ဖော်ပြီးနောက်တုံ့ပြန်မှုကိုပြန်လည်ရယူပြီးသည့်နောက်လက်ကိုင်တစ်ခုစီကိုသန့်ရှင်းရေးလုပ်ရမည်။
foreach ($curlHandles as $ch) {
curl_multi_remove_handle($multiHandle, $ch); // မှ multi handle ဖယ်ရှားခဲ့သည်
curl_close($ch); // တစ်ခုတည်းကိုပိတ်ပါ cURL လက်ကိုင်,အရင်းအမြစ်များကိုအခမဲ့
}
curl_multi_close($multiHandle); // နောက်ဆုံးအနီးကပ် multi handle
အရင်းအမြစ်များအားလုံးဖြန့်ချိကြောင်းသေချာစေရန်ဤသည်အရေးပါသောခြေလှမ်းတစ်ခုဖြစ်သည်။ curl_multi_close () ကို curl_close () တစ် ဦး တည်းဖြင့်ခေါ်ဆိုခြင်းမရှိဘဲပိတ်ထားရန်မလုံလောက်ပါ။
အမြဲတမ်းအတိအလင်းဖြန့်ချိမှု - ၎င်းသည်တစ်ခုတည်းသောတောင်းဆိုမှုများဖြစ်စေ, မျိုးစုံတောင်းဆိုမှုများဖြစ်စေ,
ကြိုးစားပါ - နောက်ဆုံးတွင်သို့မဟုတ်အမှားကိုင်တွယ်မှုကိုသုံးပါ ။ အပြောင်းအလဲနဲ့စဉ်အတွင်းခြွင်းချက်များရှိနိုင်သည်။ နောက်ဆုံးတွင်လက်ကိုင်ကိုနောက်ဆုံးဖြန့်ချိစေရန်သေချာစေရန် ကြိုးစားမှုကိုနောက်ဆုံးတွင် အသုံးပြုရန်အကြံပြုသည်။
Memory နှင့် Connection Count ကိုစောင့်ကြည့်လေ့လာပါ ။ အ 0 တ်အထည်ချုပ်သည့်ပတ်ဝန်းကျင်တွင်မပါ 0 င်သောဆံပင်ကောက်ကောက်များသည်လျင်မြန်စွာသယံဇာတများပင်ပန်းနွမ်းနယ်စေသည်။
EncapsulationSultion တောင်းဆိုမှုယုတ္တိဗေဒ - ချန်လှပ်ခြင်းကိုရှောင်ရှားရန်အရင်းအမြစ်ဖြန့်ချိမှုကိုကိုင်တွယ်ရန်၎င်းကို function တစ်ခုသို့မဟုတ်အတန်းထဲသို့ချထားရန်အကြံပြုသည်။
curl_close () PHP တွင်အထူးသဖြင့်တောင်းဆိုမှုအမြင်တွင် PHP တွင်မရွေးနိုင်ပါ။ curl_multi_remove_handle () နှင့် curl_close () ကိုမှန်ကန်သောအသုံးပြုမှုသည်စနစ်တည်ငြိမ်မှုနှင့်စွမ်းဆောင်ရည်ကိုသေချာစေနိုင်သည်။ တောင်းဆိုမှုယုတ္တိဗေဒကိုရေးပြီးပါကဤအဆင့်ကိုမမေ့ပါနှင့်။ အရင်းအမြစ်များကိုအချိန်တန်လျှင်သန့်ရှင်းရေးလုပ်ခြင်းသည်အကောင်းဆုံးစွမ်းဆောင်ရည်အကောင်းဆုံးဖြစ်သည်။