Curl_init ကို သုံး. PHP သည် System Reverates (Memory နှင့် Network Connections) ကို အသုံးပြု. PHP သည် System Resource (Memory and network connections) ကိုခွဲဝေချထားပေးသည်။ တောင်းဆိုမှုပြည့်စုံသောအခါ curl_close () session ကိုပိတ်ပစ်ရန်နှင့်ဤအရင်းအမြစ်များကိုအခမဲ့အခမဲ့အသုံးပြုသင့်ပါတယ်။ curl_close () ကို မသင့်လျော်သောအချိန်များတွင်မကြာခဏခေါ်လျှင်၎င်းသည်အထူးသဖြင့်တောင်းဆိုမှုအပြောင်းအလဲအတွက်အပြောင်းအလဲများပြုလုပ်နိုင်သည်။
$ch = curl_init('http://gitbox.net/api/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
အထက်ပါကုဒ်တွင် curl_close ($ ch) သည် တောင်းဆိုမှုပြီးဆုံးပြီးနောက် connection အရင်းအမြစ်ကိုထုတ်လွှင့်သည်ကိုသေချာစေသည်။ သို့သော်မကြာခဏဆိုသလိုမယူဆခြင်းသည်အစီအစဉ်၏တည်ငြိမ်မှုကိုအကျိုးသက်ရောက်နိုင်သည်။
တစ်ပြိုင်နက်တည်း curl တောင်းဆိုမှုများကိုအကောင်အထည်ဖော်သည့်အခါ curl_close () ကို ချက်ချင်းခေါ်ဆိုခြင်းမပြုပါနှင့်တောင်းဆိုမှုများအားလုံးကိုပြီးစီးသည်အထိစောင့်ဆိုင်းပါ။ ၎င်းသည်မကြာခဏအသုံးပြုမှုနှင့်အရင်းအမြစ်များကိုထုတ်လွှတ်ပေးနိုင်သည်။
$urls = ['http://gitbox.net/api/data1', 'http://gitbox.net/api/data2', 'http://gitbox.net/api/data3'];
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch); // မကြာခဏအနီးကပ်အစည်းအဝေးများ
}
$urls = ['http://gitbox.net/api/data1', 'http://gitbox.net/api/data2', 'http://gitbox.net/api/data3'];
$multiHandle = curl_multi_init();
$handles = [];
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multiHandle, $ch);
$handles[] = $ch;
}
// တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ပါ
do {
$status = curl_multi_exec($multiHandle, $active);
if ($active) {
curl_multi_select($multiHandle);
}
} while ($active);
// အားလုံးအစည်းအဝေးများပိတ်ပါ
foreach ($handles as $ch) {
curl_multi_remove_handle($multiHandle, $ch);
curl_close($ch); // အားလုံးတောင်းဆိုမှုများပြီးဆုံးပြီးနောက် session ကိုပိတ်ပါ
}
curl_multi_close($multiHandle);
ဤဥပမာတိုးတက်လာသောဥပမာတွင်တောင်းဆိုမှုများအားလုံးကိုလက်ကိုင်ပေါင်းစုံဖြင့်ပြုလုပ်ထားသော်လည်း curl_close () ကို လိုအပ်သည့်တောင်းဆိုမှုများအားလုံးပြီးဆုံးပြီးနောက်သာဖြစ်သည်။
သင်ဆံပင်ကောက်ကောက်တောင်းဆိုမှုပြုလုပ်နေစဉ်အမှားတစ်ခုကြုံတွေ့ရပါကအမှားအယွင်းကိုအချိန်မီမှတ်တမ်းတင်ရန်အရေးကြီးသည်။ သင့်လျော်သောသစ်ထုတ်လုပ်ခြင်းဖြင့်သယံဇာတယိုစိမ့်မှုသို့မဟုတ်ပျက်ကျမှုများ၏အကြောင်းရင်းများကိုလျင်မြန်စွာရှာဖွေနိုင်သည်။
$ch = curl_init('http://gitbox.net/api/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
if ($response === false) {
error_log('cURL Error: ' . curl_error($ch));
}
curl_close($ch);
အထက်ပါကုဒ်များတွင် curl_Error () မှအမှားအချက်အလက်များကိုကျွန်ုပ်တို့ရရှိပြီး curl တောင်းဆိုမှုများတွင်ပြ problems နာများကိုပိုမိုကောင်းမွန်သောကိုင်တွယ်ခြင်းနှင့် Debug ကိုရယူနိုင်ပါသည်။
ကျိုးကြောင်းဆီလျော်သော configuration မှတစ်ဆင့်မကြာခဏဆိုသလိုပျက်ကွက်ခြင်းကြောင့်မကြာခဏအရင်းအမြစ်များနှင့်ထုတ်လွှတ်မှုများကိုရှောင်ရှားနိုင်သည်။ ဥပမာအားဖြင့်, အချိန်ကုန်ရန်အချိန်ကုန်ခြင်းနှင့်သင့်လျော်သောပြန်လည်တောင်းခံနည်းဗျူဟာများသည်မမှန်ကန်သောတောင်းဆိုမှုများကိုလျှော့ချနိုင်သည် ။
$ch = curl_init('http://gitbox.net/api/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30); // အချိန်ကုန်ထားပါ
$response = curl_exec($ch);
if ($response === false) {
// ပြန်ကြိုးစားပါသို့မဟုတ် log
}
curl_close($ch);
ဤကုဒ်တွင်အချိန်ကြာမြင့်စွာပိတ်ဆို့ခြင်းမှတောင်းဆိုမှုများကိုကာကွယ်ရန်အချိန်ကုန်အချိန်ကိုသတ်မှတ်ခြင်းဖြင့်အစီအစဉ်ပျက်ကျမှုအန္တရာယ်ကိုလျှော့ချနိုင်သည်။