Curl သည် URL တောင်းဆိုမှုများအတွက် PHP တွင်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ဆံပင်ကောက်ကောက်ကိုအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်မတူညီသောဆာဗာများနှင့်ဆက်သွယ်နိုင်သည်, Post တောင်းဆိုမှုများကိုပြုလုပ်နိုင်သည်, post တောင်းဆိုမှုများကိုပြုလုပ်နိုင်သည်, ဖိုင်များတင်သွင်းခြင်း, ဖိုင်များတင်သွင်းခြင်း, များသောအားဖြင့်ကျွန်ုပ်တို့သည် curl_init မှတဆင့် session တစ်ခုစတင်နှင့် curl_close မှတဆင့်ပိတ်ထားသည်။
$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 session ကို အစပြု. ပိတ်လိုက်သည်။ ဤအရာသည်တောင်းဆိုမှုတစ်ခုတည်းအတွက်ကောင်းသော်လည်းမကြာခဏဆိုသလိုမကြာခဏ session ကိုစတင်ခြင်းနှင့်ပိတ်ခြင်းသည်တောင်းဆိုမှုများအမြောက်အများကိုပေးပို့ရန်လိုအပ်သည့်အခါစွမ်းဆောင်ရည်ကိုအကျိုးသက်ရောက်နိုင်သည်။
curl_init () ကို curl_init () ဟုခေါ်သည်။ PHP သည်မှတ်ဉာဏ်အသစ်ကိုခွဲဝေချထားပြီးသက်ဆိုင်ရာအရင်းအမြစ်များကိုစတင်သည်။ နှင့် curl_close () ကိုဟုခေါ်သောအချိန်ကိုခေါ်သည်။ ဤအရင်းအမြစ်များကိုထုတ်ပြန်လိမ့်မည်။ ဤစစ်ဆင်ရေးများမကြာခဏကွပ်မျက်မှုသည်အထူးသဖြင့်တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်းပတ်ဝန်းကျင်ဝန်းကျင်တွင်အထူးသဖြင့်မတတ်နိုင်သောတောင်းဆိုမှုများအတွက်အထူးသဖြင့်ထပ်ခါတလဲလဲမြင့်တက်ခြင်းနှင့်ပိတ်ခြင်းသည်စနစ်အပေါ်ဝန်ထုပ်ဝန်ပိုးကိုတိုးမြှင့်ပေးနိုင်သည်။
// အကြိမ်ပေါင်းများစွာအစပျိုးနှင့်အနီးကပ်အစည်းအဝေးများ
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "https://gitbox.net/api/endpoint1");
$response1 = curl_exec($ch1);
curl_close($ch1);
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "https://gitbox.net/api/endpoint2");
$response2 = curl_exec($ch2);
curl_close($ch2);
အထက်ပါကုဒ်သည်တောင်းဆိုမှုတစ်ခုစီကိုကိုင်တွယ်သည့်အခါအချိန်နှင့်မှတ်ဉာဏ်ကိုစွ န့ ်ပစ်သည် ။
Code ထိရောက်မှုကိုတိုးတက်စေရန်ကျွန်ုပ်တို့သည်ရှည်လျားသောချိတ်ဆက်ထားသောဆံပင်ကောက်ကောက် session ကိုသုံးနိုင်သည်။ ဤချဉ်းကပ်မှုတွင်ကျွန်ုပ်တို့သည်တစ်ချိန်ကဆံပင်ကောက်ကောက် seaster ကိုအစပြုရန်လိုအပ်သည် ။
ကျနော်တို့က curl အရင်းအမြစ်ကို loop ထဲမှာသိမ်းထားလို့ရတယ်။ ဤနည်းလမ်းသည် curl_init () နှင့် curl_close ()) နှင့် curl_close () ကို ပိုမိုထိရောက်စွာတိုးတက်စေရန်ခေါ်ဆိုမှုအရေအတွက်ကိုများစွာလျော့နည်းစေသည်။
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// ပထမတောင်းဆိုချက်
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/endpoint1");
$response1 = curl_exec($ch);
// ဒုတိယတောင်းဆိုချက်
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/endpoint2");
$response2 = curl_exec($ch);
curl_close($ch);
အထက်ဖော်ပြပါကုဒ်များတွင် Curl_init () နှင့် curl_close () ကို သာတစ်ချိန်ကသာခေါ်ဆိုပါ, URL သည် curl_setop () မှတစ်ဆင့်ပြုပြင်ပြောင်းလဲမှုဖြစ်သည်။ ဤနည်းလမ်းသည်ထပ်ခါတလဲလဲ session ကိုစတင်ခြင်းနှင့်ပိတ်ခြင်းကိုရှောင်ရှားခြင်းနှင့်ကုဒ်ထိရောက်မှုကိုတိုးတက်စေသည်။
တောင်းဆိုမှုအမြောက်အများကိုသင်ပို့ရန်လိုအပ်ပါက PHP ၏ curl_multi_ * လုပ်ဆောင်ချက်သည်သင့်အားတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းပို့ရန်ကူညီနိုင်သည်။ curl_multi_init () သည် သီးသန့်သီးသန့်စာသင်ခန်းများဖွင့်လှစ်ခြင်းမရှိဘဲအပြိုင်တောင်းဆိုမှုများကိုအပြိုင်တောင်းဆိုမှုများကိုသင်ပို့နိုင်သည်။
// ဖြစ်ပေါ်လာခြင်း cURL သုတ်သင်အစည်းအဝေးများ
$mh = curl_multi_init();
// မျိုးစုံဖန်တီးပါ cURL ရုံးထိုင်အချိန်ကာလ
$ch1 = curl_init("https://gitbox.net/api/endpoint1");
$ch2 = curl_init("https://gitbox.net/api/endpoint2");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
// 将ရုံးထိုင်အချိန်ကာလ添加到သုတ်သင်အစည်းအဝေးများ中
curl_multi_add_handle($mh, $ch1);
curl_multi_add_handle($mh, $ch2);
// အသုတ်တောင်းဆိုမှုများကိုလုပ်ဆောင်ပါ
do {
$status = curl_multi_exec($mh, $active);
} while ($status == CURLM_CALL_MULTI_PERFORM || $active);
// တုံ့ပြန်မှုတစ်ခုရယူပါ
$response1 = curl_multi_getcontent($ch1);
$response2 = curl_multi_getcontent($ch2);
// ရုပ်သိမ်းခြင်း cURL ရုံးထိုင်အချိန်ကာလ
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
curl_multi_ * function ကိုအသုံးပြုခြင်းအားဖြင့်သင်တစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်မစဉ်းစားဘဲတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်ပေးပို့နိုင်သည်။ ၎င်းသည်စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်သာမကတစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုတစ်ချိန်တည်းတွင်ပြုလုပ်ရန်ခွင့်ပြုသည်။
curl_init () နှင့် curl_close () curl_close () curl_close () () curl_close () () curlose () ကိုရှောင်ရှားခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်အစားသက်တမ်းကြာသည့်တောင်းဆိုမှုများကို အသုံးပြု. ကျွန်ုပ်တို့၏ကုဒ်၏ကွပ်မျက်မှုစွမ်းဆောင်ရည်ကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။ Especially when a large number of requests are needed, using the curl_multi_* function can further speed up the entire process and reduce resource consumption.
ဤနည်းလမ်းများဖြင့် HTTP တောင်းဆိုမှုများကို curl ကို အသုံးပြု. HTTP တောင်းဆိုမှုများကိုပေးပို့ပြီး PHP ပရိုဂရမ်အတွက်ခိုင်မာသောအုတ်မြစ်ချသည့်အခါစွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်ကောင်းမွန်စေနိုင်သည်။