လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP တွင် curl_share_init function ကို သုံး. multxeaded extensions များအတွက် shared အရင်းအမြစ်အထောက်အပံ့ကိုထည့်သွင်းနည်း။

PHP တွင် curl_share_init function ကို သုံး. multxeaded extensions များအတွက် shared အရင်းအမြစ်အထောက်အပံ့ကိုထည့်သွင်းနည်း။

M66 2025-06-11

မြင့်မားသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုလုပ်ဆောင်သောအခါ, အထူးသဖြင့်တစ်ပြိုင်နက်တည်းကအတန်ငယ်ဒေတာများနှင့်အံရွှေးခေါ်ဆိုမှုများကို PHP ဖြင့်အသုံးပြုသည့်ဖြစ်ရပ်များတွင်ပုံတူပွားခြင်းနှင့်ဆက်သွယ်မှုကိုတည်ဆောက်ခြင်းသည်အရင်းအမြစ်များကိုလျစ်လျူရှုခြင်းမပြုနိုင်ပါ။ curl_share_init function သည် libcurl မှပေးသောအဆင့်မြင့်အင်္ဂါရပ်တစ်ခုဖြစ်သည်။ ၎င်းသည် DNS cache, SSL session များနှင့် cookies များကဲ့သို့သောအရင်းအမြစ်များကိုမျှဝေရန် curl session များစွာကိုခွင့်ပြုထားသည်။

ဤဆောင်းပါးသည် PHP တွင် Curl_share_init ကို PHP တွင်မည်သို့အသုံးပြုရမည်ကိုမည်သို့အသုံးပြုရမည်, ဥပမာအားဖြင့်မည်သို့အသုံးပြုရမည်ကိုရှင်းပြပါမည်။

curl_share_init ဆိုတာဘာလဲ။

curl_share_init သည် libcurl မှမျှဝေထားသော လက်ကိုင် ကိုအစပျိုးရန် Libcul မှပေးသော function တစ်ခုဖြစ်ပါတယ်။ ဤလက်ကိုင်သည်ဒေတာများစွာကိုသိုလှောင်ထားသည့်တောင်းဆိုမှုများနှင့်အတူဒေတာများကိုမျှဝေနိုင်သည်, ထို့ကြောင့်ထပ်ခါတလဲလဲစတင်ခြင်း,

သက်ဆိုင်တဲ့အခြေအနေများ

  • Multi-threaded သို့မဟုတ် Multi-process တွားသောမျိုးစိတ်များကို သုံး. ဥပမာမြင့်မားသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုဖြစ်စရာ,

  • အိမ်ရှင်အလားတူ host ကိုရယူရန်နှင့် DNS cache ကိုမျှဝေရန်လိုသည်။

  • တူညီသော cookie သို့မဟုတ် ssl session ကိုသုံးပြီးအများအပြားတောင်းဆိုမှုများ။

PHP မှာဘယ်လိုသုံးရမလဲ။

PHP တွင် curl_share_init () , curl_ssare_setopt () နှင့် curl_setopt () နှင့် curl_setopt () နှင့် curl_setopt () နှင့် curl_setopt () ကိုသုံးနိုင်သည်။ ဤတွင်ပြည့်စုံသောဥပမာတစ်ခုဖြစ်သည်။

နမူနာကုဒ်

 <?php

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

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

// မျိုးစုံဖန်တီးပါ cURL ရုံးထိုင်အချိန်ကာလ
$urls = [
    'https://m66.net/api/data1',
    'https://m66.net/api/data2',
];

$chs = [];
foreach ($urls as $url) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    // binded shared လက်ကိုင်
    curl_setopt($ch, CURLOPT_SHARE, $sh);
    $chs[] = $ch;
}

// ဖြစ်ပေါ်လာခြင်း multi handle
$mh = curl_multi_init();

// တောင်းဆိုမှုများအားလုံးကိုထည့်ပါ multi handle
foreach ($chs as $ch) {
    curl_multi_add_handle($mh, $ch);
}

// တောင်းဆိုမှုများအားလုံးကိုလုပ်ဆောင်ပါ
$running = null;
do {
    curl_multi_exec($mh, $running);
    curl_multi_select($mh);
} while ($running > 0);

// ရလဒ်များကိုရယူပါ
foreach ($chs as $ch) {
    $content = curl_multi_getcontent($ch);
    echo "တုံ့ပြန်မှုအကြောင်းအရာ:\n" . $content . "\n\n";
    curl_multi_remove_handle($mh, $ch);
    curl_close($ch);
}

// သန့်ရှင်းရေးလုပ်သည်
curl_share_close($sh);
curl_multi_close($mh);
?>

မှတ်သားရန်အရာ

  1. Shared Lock type ကန့်သတ်ချက် - သော့ခတ်အမျိုးအစားတစ်ခုသာ ( curl_lock_data_cookie နှင့် curl_lok_data_dns ) ကိုတစ်ကြိမ်တွင်သာသတ်မှတ်နိုင်သည်။ curl_share_setopt အမျိုးအစားမျိုးစုံရေးချိန်တွင်အကြိမ်ပေါင်းများစွာအကြိမ်ကြိမ်ခေါ်သင့်သည်။

  2. Thread ဘေးကင်းလုံခြုံမှုပြ issues နာများ - Curl_share သည် C ဘာသာစကားရှိ Multipreaded CurlizeAs တွင်အသုံးပြုသည်။ PHP ကိုယ်တိုင်က Php ကိုယ်တိုင်က Thp ကိုယ်တိုင်ကမလုံခြုံပါ

  3. အမှားကိုင်တွယ်ခြင်း - အမှန်တကယ်ဖွံ့ဖြိုးတိုးတက်မှုတွင် curl_errno နှင့် curl_error နှင့် curl_error စစ်ဆေးမှုများကိုတောင်းဆိုမှုသည်ပုံမှန်ဖြစ်သည်ကိုသေချာစေရန်သေချာစေရန်လိုအပ်သည်။

အကျဉ်းချုပ်

curl_share_init သည် Multi- တောင်းဆိုမှုဖြစ်ရာများတွင်စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သောအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ curl တောင်းဆိုမှုများအကြားအရင်းအမြစ်များကိုမျှဝေခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ကွန်ယက်တောင်းဆိုမှုများကို overhead ကိုလျှော့ချရုံသာမကစနစ်၏စွမ်းဆောင်ရည်ကိုလည်းတိုးတက်စေသည်။ PHP တွင် curl_multi နှင့်ပေါင်းစပ်။ စွမ်းဆောင်ရည်မြင့်မားသောတစ်ပြိုင်နက်တည်းစနစ်များအတွက်ခိုင်မာသောအုတ်မြစ်ချနိုင်သည်။

အကယ်. သင်သည်တတိယပါတီ၏ interfaces များနှင့်ချိတ်ဆက်ရန်သို့မဟုတ်ထိရောက်သောတွားနိုင်သောစနစ်ကိုတည်ဆောက်ရန်လိုအပ်ပါက curl_share မှဖြစ်ပေါ်လာသောအကောင်းဆုံးအကျိုးသက်ရောက်မှုကိုသင်လည်းကြိုးစားကြည့်နိုင်သည်။

မကြာသေးမီ ဆောင်းပါးများ