လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> စွမ်းဆောင်ရည်တိုးတက်စေရန် curl_share_init () function ကိုအသုံးပြုခြင်းအားဖြင့်ထပ်ခါတလဲလဲ DNS resolution ကိုမည်သို့ရှောင်ရှားရမည်နည်း။

စွမ်းဆောင်ရည်တိုးတက်စေရန် curl_share_init () function ကိုအသုံးပြုခြင်းအားဖြင့်ထပ်ခါတလဲလဲ DNS resolution ကိုမည်သို့ရှောင်ရှားရမည်နည်း။

M66 2025-06-23

HTTP တောင်းဆိုမှုများကိုအသုံးချရန် PHP ၏ဆံပင်ကောက်ကောက်တိုးချဲ့မှုကိုအသုံးပြုသောအခါသင်စွမ်းဆောင်ရည်မြှင့်တင်ရေးပြ resolution နာကိုသင်ကြုံတွေ့ရနိုင်သည်။ သင်တောင်းဆိုသည့်အခါတိုင်း curl သည် domain name ကိုတစ်ကြိမ်ခွဲခြမ်းစိတ်ဖြာရန်လိုအပ်သည်။ ကံကောင်းထောက်မစွာပင် PHP သည် DNS cache ကိုမျှဝေခြင်းဖြင့်ဤပြ problem နာကိုရှောင်ရှားနိုင်သည့်လုပ်ဆောင်ချက်တစ်ခုကိုပေးသည်။ ဤဆောင်းပါးသည်၎င်းကိုမည်သို့အသုံးပြုရမည်ကိုပြပါလိမ့်မည်။

curl_share_init ဆိုတာဘာလဲ။

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 ရန်ပုံငွေ, အသုတ် များ , ဇာတ်လမ်းတိုင်းကိုများစွာတိုးတက်အောင်ကောင်းကောင်းမရရှိနိုင်ပေမဲ့ရိုးရှင်းသော,