တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်း PHP applications များတွင် domain name အတွက်တူညီသောကွန်ယက်တောင်းဆိုမှုများတွင် dns မေးမြန်းချက်များစွာကို ဦး တည်စေနိုင်သည်။ ၎င်းသည်ဆာဗာဘက်တွင်ဝန်ထုပ်ဝန်ပိုးကိုတိုးမြှင့်ရုံသာမကစွမ်းဆောင်ရည်အပေါ်သက်ရောက်မှုရှိသည်။ ကံကောင်းထောက်မစွာ, Libcurl သည်ထိရောက်သောဖြေရှင်းချက်တစ်ခုပေးသည် - curl_share_init () function ကို။ ၎င်းကိုကျိုးကြောင်းဆီလျော်စွာအသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် DNS cache sharing ကိုအကောင်အထည်ဖော်နိုင်ပြီး Dns Dns မေးမြန်းချက်များကိုလျှော့ချပြီးတောင်းဆိုမှုကိုထိရောက်စွာတိုးတက်အောင်လုပ်နိုင်သည်။
curl_share_init () သည် Libcurl မှ shocurl မှပေးသောလက်ကိုင် (curl share လက်ကိုင်) ကိုစတင်ရန်ပေးထားသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤမျှဝေထားသောလက်ကိုင်မှတစ်ဆင့် cookies များ, DNS Cacts, SSL sessions များစသည်တို့အကြားအချက်အလက်များကိုမျှဝေနိုင်သည်။
ပုံမှန်အားဖြင့် dns Query ကို dns မေးမြန်းခြင်းကို curl ကို အသုံးပြု. သတ်မှတ်ထားသောအခါတိုင်း domain name ကိုဖြေရှင်းရန်အတွက်ပြုလုပ်သည်။ ဥပမာအားဖြင့်:
$ch = curl_init('https://m66.net/api/data');
curl_exec($ch);
curl_close($ch);
အထက်ပါတောင်းဆိုမှုကိုကွင်းဆက်တစ်ခုတွင်ထပ်ခါတလဲလဲကွပ်မျက်ခံရပါက DNS Query သည်အချိန်တိုင်းတွင်ပြုလုပ်လိမ့်မည်။
DNS cache ကိုမျှဝေခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် curl thundles မျိုးစုံအကြားဖြေရှင်းထားသောဒိုမိန်းအမည်များကိုပြန်လည်အသုံးပြုပြီးထပ်ခါတလဲလဲမေးမြန်းခြင်းကိုရှောင်ရှားနိုင်သည်။
DNS Cache ကိုမျှဝေရန် Curl_share_init () ကို မည်သို့အသုံးပြုရမည်ကိုဖော်ပြသည့်ဥပမာတစ်ခုမှာ -
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
for ($i = 0; $i < 10; $i++) {
$ch = curl_init('https://m66.net/api/data');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $sh);
$response = curl_exec($ch);
if (curl_errno($ch)) {
echo 'Error: ' . curl_error($ch) . PHP_EOL;
}
curl_close($ch);
}
curl_share_close($sh);
curl_share_init () : shared လက်ကိုင်ကိုအစပြု။
curl_share_setopt () - မျှဝေထားသောအကြောင်းအရာများကို DNS Cache သို့သတ်မှတ်ပါ။
curl_setopt ($ c ch, curlopt_share, $ sh) : curl တောင်းဆိုမှုတစ်ခုချင်းစီအတွက်မျှဝေလက်ကိုင်ကိုချည်နှောင်။
curl_share_close ($ sh) - အသုံးပြုပြီးနောက်အရင်းအမြစ်ကိုထုတ်လွှတ်ပါ။
ဤနည်းအားဖြင့် curl တောင်းဆိုမှုများအားလုံးသည်တူညီသော DNS cache ကိုကွင်းဆက်တစ်ခုတွင်မျှဝေပေးပြီးတောင်းဆိုမှုတစ်ခုစီအတွက်ဒိုမိန်းအမည်ဖြေရှင်းချက်ကိုရှောင်ရှားနိုင်ပြီး,
မျှဝေထားသောလက်ကိုင်များကို (အမျိုးမျိုးသောပတ်ဝန်းကျင်တွင်ကဲ့သို့) ချည်ကို ဖြတ်. မသုံးနိုင်ပါ။
အကယ်. တောင်းဆိုမှုသည်ဒိုမိန်းအမည်မျိုးစုံပါ 0 င်ပါက DNS Cache ၏အကျိုးကျေးဇူးများကိုသာရယူရန်တောင်းဆိုမှုများကိုသာခံစားနိုင်သည်။
မှတ်ဥာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်မျှဝေထားသောအရင်းအမြစ်များကိုမှန်ကန်စွာပိတ်ထားရမည်။
DNS မေးမြန်းချက်များကိုပိုမိုကောင်းမွန်စေရန်အလားအလာမြင့်မားသောကွန်ယက်တောင်းဆိုမှုများကိုကိုင်တွယ်ရာတွင်သိသိသာသာစွမ်းဆောင်ရည်တိုးတက်မှုများကိုဖြစ်ပေါ်စေနိုင်သည်။ PHP သည် Curl_Share_init () ဟုခေါ်ရန် Curl extension ကိုအသုံးပြုသည်။ ၎င်းသည်စွမ်းဆောင်ရည်မြင့်မားသောလိုအပ်ချက်များနှင့်အမျှ ဦး တည်သည့် applications များအတွက်ကြိုးစားခြင်းအတွက်ကြိုးစားသင့်သည်။ ၎င်းကိုစနစ်တကျနေရာချထားခြင်းနှင့်အသုံးပြုခြင်းအားဖြင့်သင်သည် DNS ဖိအားကိုဆာဗာတွင်သိသိသာသာလျှော့ချပေးပြီးကွန်ယက်တုန့်ပြန်မှုမြန်နှုန်းကိုတိုးတက်စေနိုင်သည်။