HTTP တောင်းဆိုမှုများကိုအသုံးချရန် PHP ၏ဆံပင်ကောက်ကောက်တိုးချဲ့မှုကိုအသုံးပြုသောအခါသင်စွမ်းဆောင်ရည်မြှင့်တင်ရေးပြ resolution နာကိုသင်ကြုံတွေ့ရနိုင်သည်။ သင်တောင်းဆိုသည့်အခါတိုင်း curl သည် domain name ကိုတစ်ကြိမ်ခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည် DNS cache ကိုမျှဝေခြင်းဖြင့်ဤပြ problem နာကိုရှောင်ရှားနိုင်သည့်လုပ်ဆောင်ချက်တစ်ခုကိုပေးသည်။ ဤဆောင်းပါးသည်၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုပြပါလိမ့်မည်။
curl_share_init () သည် curl extension မှပေးသောလက်ကိုင်တစ်ခုဖန်တီးရန် curl extension မှပေးသော function တစ်ခုဖြစ်သည်။ ဤမျှဝေထားသောလက်ကိုင်သည် DNS cache, cookies များ, sSL sessions များကဲ့သို့သော curl session များအကြားတိကျသောအရင်းအမြစ်များကိုမျှဝေနိုင်သည်။
DNS cache ကိုမျှဝေနိုင်သည့်အခါတောင်းဆိုမှုများစွာသည်ဒိုမိန်းအမည်ကိုတစ်ကြိမ်ဖြေရှင်းရန်လိုအပ်သည်။
၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုရှင်းပြရန်ရိုးရှင်းသောဥပမာကုဒ်ကိုအသုံးပြုကြပါစို့။
<?php
// ဖန်တီး cURL Shared လက်ကိုင်
$sh = curl_share_init();
// မျှဝေခြင်းရွေးချယ်စရာများကိုသတ်မှတ်ပါ,စွမ်းဆောင်နိုင်စေ DNS မျှဝေခဲ့သည်
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
$urls = [
'https://m66.net/api/data1',
'https://m66.net/api/data2',
'https://m66.net/api/data3',
];
foreach ($urls as $url) {
$ch = curl_init();
// တည်ဆောက်သည် URL နှင့်အခြားလိုအပ်သောရွေးချယ်စရာများ
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
// 绑定Shared လက်ကိုင်
curl_setopt($ch, CURLOPT_SHARE, $sh);
// တောင်းဆိုမှုကို execute
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'အမှား: ' . curl_error($ch) . PHP_EOL;
} else {
echo 'တုံ့ပြန်ချက်: ' . $response . PHP_EOL;
}
// ရုပ်သိမ်းခြင်း cURL ရုံးထိုင်အချိန်ကာလ
curl_close($ch);
}
// ရုပ်သိမ်းခြင်းShared လက်ကိုင်
curl_share_close($sh);
?>
1 ?? တစ် ဦး မျှဝေလက်ကိုင်ဖန်တီး <br> <br> ကျွန်ုပ်တို့သည် curl_share_init () ကို သုံးရန် $ sh ကိုဖန်တီးရန်အသုံးပြုသည်။
2 ?? Shared အရင်းအမြစ်များကို set <br> <br> curl_share_setopt () နှင့်အတူကျွန်ုပ်တို့သည်မျှဝေထားသော DNS အချက်အလက်များကိုသတ်မှတ်ခြင်း ( Curl_lock_Data_DNS ) ကိုသတ်မှတ်သည်။
3 ?? တစ်ခုချင်းစီကိုဆံပင်ကောက်ကောက် session တစ်ခုအတွက် shared လက်ကိုင်ချည်နှောင် curl_setopt () တွင် curlopt_Share ကို Curlopt_Share ကိုလက်ရှိဆံပင်ကောက်ကောက်ဖြင့်ကိုင်ထားရန်အသုံးပြုပါ ။
4 ?? လက်ကိုင်ကိုပိတ်ပါ တောင်းဆိုမှုများအားလုံးကိုဖြည့်စွက်ပြီးနောက် curl_share_Close () ကို သုံးရန်သတိရပါ။
တောင်းဆိုမှုများအားလုံးကိုပြီးဆုံးသွားသောအခါမျှဝေထားသောလက်ကိုင်ကိုပိတ်ထားရမည်။
အကယ်. Threads သို့မဟုတ် concurrent တောင်းဆိုမှုများကိုပရိုဂရမ်တွင်တစ်ပြိုင်နက်တည်းလည်ပတ်ပါကပြိုင်ပွဲအခြေအနေများမှကာကွယ်ရန်အရင်းအမြစ်များကိုသော့ခတ်ရန်သတိထားရန်လိုအပ်သည်။
cookies များ, SSL နှင့်အခြားအချက်အလက်များကိုမျှဝေသောအခါတူညီသောနည်းလမ်းကို သုံး. curl_lock_data_ * စဉ်ဆက်မပြတ်အစားထိုးပါ။
API ရန်ပုံငွေ, အသုတ် များ , ဇာတ်လမ်းတိုင်းကိုများစွာတိုးတက်အောင်ကောင်းကောင်းမရရှိနိုင်ပေမဲ့ရိုးရှင်းသော,