PHP တွင် ဆံပင်ကောက်ကောက် သည် HTTP တောင်းဆိုမှုများကို URL မှတစ်ဆင့်လုပ်ဆောင်ရန်အလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ ၎င်းသည် Get, Post တောင်းဆိုမှုများနှင့်အခြား http နှင့်သက်ဆိုင်သောစစ်ဆင်ရေးများကိုကိုင်တွယ်နိုင်သည်။ သို့သော် DNS မေးမြန်းချက်များသည်အထူးသဖြင့်အဆင့်မြင့်ကြိမ်နှုန်းတောင်းဆိုမှုများတွင် HTTP တောင်းဆိုမှုများကိုပြုလုပ်ရာတွင်စွမ်းဆောင်ရည်မြှင့်တင်ရေးတစ်ခုဖြစ်သည်။ တောင်းဆိုမှုတစ်ခုစီအတွက် DNS ကိုပြန်လည် ခွဲခြမ်းစိတ်ဖြာခြင်း ကိုရှောင်ရှားရန် PHP သည် dns cache sharing အတွက် dns cache sharing အတွက် function ကိုထောက်ပံ့ပေးသည်။
curl_share_init () သည်မျှဝေထားသောအရင်းအမြစ်များကိုစတင်ရန်အသုံးပြုသော function တစ်ခုဖြစ်ပါတယ်။ မျှဝေထားသောအရင်းအမြစ်များကို curl session များအကြားဒေတာများကိုအထူးသဖြင့် DNS Cache များအကြားအချက်အလက်များကိုမျှဝေရန်အသုံးပြုနိုင်သည်။ DNS cache ကိုမျှဝေခြင်းအားဖြင့်မျိုးစုံကောက်ကောက်တောင်းဆိုမှုများသည် dns မေးမြန်းချက်များကိုရှောင်ရှားနိုင်ပြီးလျှောက်လွှာစွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
resource curl_share_init ( void )
အဆိုပါ function ကို input parameters တွေကိုမနှင့် curl sharl_share_handle ) ကိုပြန်ပို့သည်။ ဤမျှဝေထားသောလက်ကိုင်ကိုမတူညီသောဆံပင်ကောက်ကောက်များအကြားသိုလှောင်ထားသည့်ဒေတာများကိုမျှဝေရန်အသုံးပြုသည်။
မျှဝေထားသော cache မရှိခြင်း၌ curl သည် dns မေးမြန်းမှုတိုင်းတိုင်းကတောင်းဆိုတိုင်းအချိန်တိုင်းတွင် DNS Query ကိုလုပ်ဆောင်သည်။ အထူးသဖြင့်သင်သည်တူညီသောဒိုမိန်းအမည်ကိုတောင်းဆိုမှုများစွာပြုလုပ်နေစဉ် DNS မေးမြန်းချက်များကိုထပ်ခါတလဲလဲဖြုန်းတီးနိုင်သည့်အချိန်ကိုဖြုန်းတီးနိုင်သည်။ DNS cache sharing ကိုဖွင့်ခြင်းအားဖြင့် DNS resolution ၏ overhead သည်သိသိသာသာလျှော့ချနိုင်သည်။
ပထမ ဦး စွာ curl_share_init () ကို မျှဝေထားသောအရင်းအမြစ်ကိုအစပြုရန်ခေါ်ယူရန်ဖြစ်သည်။
$share = curl_share_init();
ရှယ်ယာလက်ကိုင်ကိုအစပြုပြီးနောက် DNS cache sharing ကို enable လုပ်ရန် curl_share_setopt () ကိုသုံးပါ။ curlshopt_share option သည်မျှဝေရန်အရင်းအမြစ်အမျိုးအစားကိုသတ်မှတ်သည်။ curl_lock_data_DNS သည် DNS cache ကိုမျှဝေရန်အသုံးပြုသည်။
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
ထို့နောက် curl sessions မျိုးစုံကိုဖန်တီးပြီးမျှဝေထားသောလက်ကိုင်များကို၎င်းတို့အားချည်နှောင်ပါ။
$ch1 = curl_init('http://m66.net');
curl_setopt($ch1, CURLOPT_SHARE, $share);
$ch2 = curl_init('http://m66.net');
curl_setopt($ch2, CURLOPT_SHARE, $share);
curl sessions အားလုံးကိုသတ်မှတ်ပြီးနောက်သင်တောင်းဆိုမှုများကိုသီးခြားစီလုပ်ဆောင်နိုင်သည်။
curl_exec($ch1);
curl_exec($ch2);
တောင်းဆိုမှုပြည့်စုံပြီးနောက်, curl sessions အားလုံးကိုပိတ်ပြီးအရင်းအမြစ်များကိုမျှဝေရန်သေချာအောင်လုပ်ပါ။
curl_close($ch1);
curl_close($ch2);
curl_share_close($share);
Curl_Share_init () function ကို အသုံးပြု. DNS Cache Sharing ကိုမည်သို့အကောင်အထည်ဖော်မည်ကိုပြသသောပြည့်စုံသောဥပမာတစ်ခုရှိသည်။