လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_share_init ကို အသုံးပြု. ကြီးမားသော API တွားတတ်သောအလုပ်များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပါ။

curl_share_init ကို အသုံးပြု. ကြီးမားသော API တွားတတ်သောအလုပ်များကိုပိုမိုကောင်းမွန်အောင်ပြုလုပ်ပါ။

M66 2025-05-28

စွမ်းဆောင်ရည်ကောင်းမွန်မှုသည်အကြီးစား API တွားတတ်သောအလုပ်များကိုဖျော်ဖြေသောအခါအရေးပါသည်။ PHP နှင့်ဆံပင်ကောက်ကောက်ကိုအသုံးပြုသော developer များအတွက် curl_share_init () ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်း () သည်စနစ်အရင်းအမြစ်သုံးစွဲမှုနှင့်ထိရောက်မှုကိုသိသိသာသာလျှော့ချနိုင်သည်။ ဤဆောင်းပါးသည် function, အသုံးပြုမှုအခြေအနေများနှင့်၎င်းကိုကုဒ်တွင်မည်သို့အကောင်အထည်ဖော်နိုင်မည်ကိုအသေးစိတ်မိတ်ဆက်ပေးလိမ့်မည်။

curl_share_init ဆိုတာဘာလဲ။

curl_share_init () သည် php curl extension ကိုမျှဝေထားသောလက်ကိုင်တစ်ခု (curl share လက်ကိုင်) ကိုစတင်ရန် PHP Curl extension မှထောက်ပံ့ပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ လက်ကိုင်များကိုမျှဝေခြင်းအားဖြင့် dns cache, ssl session cache, ssl session cache, cookies များစသဖြင့်အရင်းအမြစ်များကိုမျှဝေနိုင်သည်။

အတိုချုပ်ဆိုရလျှင်ဤလုပ်ဆောင်ချက်၏အဓိကလုပ်ဆောင်ချက်မှာ "desource for sharing နှင့် dupticate လုပ်ခြင်းကိုလျှော့ချခြင်း" ဖြစ်သည်။

ကြည့်ရှုပါ

တစ်ချိန်တည်းတွင်ရာနှင့်ချီသော HTTP တောင်းဆိုမှုများကိုသင်တစ်ထောင်လောက်ရှိရန်လိုအပ်သည့်အခါ -

  • ကြီးမားသောအနားယူ api ဒေတာဘေ့စ်ကိုတွားသွားပါ။

  • ပုံမှန် third-party data အရင်းအမြစ်များကိုပုံမှန်ထပ်တူပြုခြင်း,

  • မြင့်မားသောတစ်ပြိုင်နက်တည်းနှင့်အတူ API endpoint ကို access ကိုရယူပါ။

အကယ်. တောင်းဆိုမှုတစ်ခုစီသည် DNS မေးမြန်းမှုနှင့် SSL လက်ဆွဲကိုသီးခြားစီတည်ဆောက်သည်ဆိုလျှင်၎င်းသည်ကြီးမားသောစွမ်းဆောင်ရည်စွန့်ပစ်ပစ္စည်းများကိုဖြစ်စေနိုင်သည်။ curl_share_init () ကိုအသုံးပြုခြင်း () သည်ဤတောင်းဆိုမှုများကိုတစ်စိတ်တစ်ပိုင်း cache ကိုဝေမျှရန်ခွင့်ပြုနိုင်သည်။

အခြေခံအသုံးပြုမှုဥပမာများ

Curl_Share_init ကို အသုံးပြု. ကြီးမားသော API တွားတတ်သောအလုပ်များကိုပိုမိုကောင်းမွန်စေရန်အတွက်နမူနာကုဒ်ဖြစ်သည်။

 <?php

// အဆိုပါ shared လက်ကိုင်ကိုအစပျိုး
$sh = curl_share_init();

// Shared အရင်းအမြစ်အမျိုးအစားကိုသတ်မှတ်ပါ,ဒီမှာမျှဝေပါ DNS နှင့် Cookie
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);

$urls = [
    'https://m66.net/api/data1',
    'https://m66.net/api/data2',
    'https://m66.net/api/data3',
    // သင်ပိုမိုထည့်သွင်းရန်ဆက်လက်နိုင်ပါတယ် API စကားပေြာဟော
];

$multiHandle = curl_multi_init();
$curlHandles = [];

// တစ်ခုချင်းစီကိုစတင် cURL easy လက်ကိုင်
foreach ($urls as $i => $url) {
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // 绑定共享လက်ကိုင်
    curl_setopt($ch, CURLOPT_SHARE, $sh);
    curl_multi_add_handle($multiHandle, $ch);
    $curlHandles[$i] = $ch;
}

// တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများဖျော်ဖြေ
$running = null;
do {
    curl_multi_exec($multiHandle, $running);
    curl_multi_select($multiHandle);
} while ($running > 0);

// ရလဒ်များကိုရယူပါ
foreach ($curlHandles as $i => $ch) {
    $response = curl_multi_getcontent($ch);
    echo "Response from {$urls[$i]}:\n";
    echo $response . "\n";
    curl_multi_remove_handle($multiHandle, $ch);
    curl_close($ch);
}

// အရင်းအမြစ်များကိုအခမဲ့
curl_share_close($sh);
curl_multi_close($multiHandle);

အဓိကအချက်များ

  1. Shared အရင်းအမြစ်ချိန်ညှိချက်များ <br> <br> curl_share_setopt () တွင်မျှဝေထားသောအရင်းအမြစ်အမျိုးအစားများကိုဖော်ပြရန် အသုံးပြုလေ့ရှိသည်။

    • curl_lock_data_dns : shared dns cache ကို။

    • curl_lock_data_cookie : cookies များကိုမျှဝေပါ။

    • curl_lock_data_ssless_session : SSL session ကိုမျှဝေပါ။

  2. ဖြစ်စဉ်များကိုဖြတ်ပြီးမပါဝင်ပါနဲ့
    မျှဝေထားသောလက်ကိုင်သည်တူညီသောလုပ်ငန်းစဉ်နှင့်သာသက်ဆိုင်သည်။ Multi-process crawling သည်အခြားယန္တရားများ (ပြင်ပ cache များသို့မဟုတ်ဒေတာဘေ့စ်ကဲ့သို့) အသုံးပြုခြင်းလိုအပ်သည်။

  3. အရင်းအမြစ်များကိုမှန်ကန်စွာဖြန့်ချိ <br> <br> Crawling Task ပြီးသွားရင် Curl_Share_Close () နှင့် curl_multi_close () curl_multi_close ( )) ကိုမှတ်မိဖို့သတိရပါ

စွမ်းဆောင်ရည်အကျိုးခံစားခွင့်

DNS နှင့် SSL Session Sharing ကိုဖွင့်ခြင်းအားဖြင့်သင်ရှောင်ရှားနိုင်သည်။

  • တူညီသောဒိုမိန်းအမည်ကို (အထူးသဖြင့်ဒိုမိန်းတစ်ခုမှတောင်းဆိုမှုများစွာအတွက်တောင်းဆိုမှုများစွာအတွက်) ကိုပြန်လုပ်ပါ။

  • SSL လက်ခုပ်တီး (အထူးသဖြင့် HTTPS တောင်းဆိုမှုများ) ကိုပြန်လုပ်ပါ။

အမှန်တကယ်စမ်းသပ်ခြင်းတွင်ရာနှင့်ချီသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက်ဤ optimization သည် CPU နှင့်ကွန်ယက်ဝန်များကိုသိသိသာသာလျှော့ချပေးနိုင်သည်။