curl_share_init function သည် PHP ၏ဆံပင်ကောက်ကောက်တိုးချဲ့ခြင်းဖြင့်ပေးသော interface တစ်ခုဖြစ်ပြီး၎င်းသည်မျှဝေထားသောအရင်းအမြစ်လက်ကိုင်ကိုစတင်ရန်အသုံးပြုသည်။ ဤမျှဝေထားသောအရင်းအမြစ်လက်ကိုင်ကို coupies များ, dns resolution cache, cookies resolution cache, အရင်းအမြစ်များကို 0 င်ရောက်စွက်ဖက်ခြင်းမရှိဘဲအချက်အလက်အချို့ကိုမျှဝေခြင်းမပြုဘဲအချို့သောအချက်အလက်များကိုဝေမျှနိုင်သည်။
တစ်ပြိုင်နက်တည်းတစ်ပြိုင်နက်တည်း web application တွင်သုံးစွဲသူအမြောက်အများသည်တစ်ချိန်တည်းတွင်တောင်းဆိုမှုများကိုအစပြုနိုင်သည်။ အသုံးပြုသူများအားလုံးသည်တူညီသောကောက်ရိုးကိုမျှဝေပါက၎င်းတို့၏တောင်းဆိုမှုများသည်တစ် ဦး နှင့်တစ် ဦး ဝင်ရောက်စွက်ဖက်နိုင်သည်။ ထို့ကြောင့်ကျွန်ုပ်တို့သည်စနစ်စွမ်းဆောင်ရည်ကိုတိုးတက်စေရန်မျှဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုနိုင်သည်။
Session အထီးကျန်မှုမဟာဗျူဟာကိုအကောင်အထည်ဖော်ရန် Curl_share_init function ကိုအသုံးပြုသော PHP နမူနာကုဒ်သည် -
<?php
// acURLShared လက်ကိုင်
$share = curl_share_init();
// 设置Shared လက်ကိုင်的配置,ကွဲပြားခြားနားသောအရင်းအမြစ်များကိုမျှဝေပုံကိုထိန်းချုပ်ပါ
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE); // မျှဝေခဲ့သည်cookie
curl_share_setopt($share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS); // မျှဝေခဲ့သည်DNSသိုကာတာ
// a新的cURLရုံးထိုင်အချိန်ကာလ
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_URL, "http://m66.net/path/to/resource");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_SHARE, $share); // 绑定မျှဝေခဲ့သည်资源
// ပထမတောင်းဆိုမှုကိုလုပ်ဆောင်ပါ
$response1 = curl_exec($ch1);
// တစ်စက္ကန့်ကိုဖန်တီးပါcURLရုံးထိုင်အချိန်ကာလ
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, "http://m66.net/another/resource");
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch2, CURLOPT_SHARE, $share); // 绑定မျှဝေခဲ့သည်资源
// ဒုတိယတောင်းဆိုမှုကို execute
$response2 = curl_exec($ch2);
// 关闭ရုံးထိုင်အချိန်ကာလ
curl_close($ch1);
curl_close($ch2);
// 释放Shared လက်ကိုင်
curl_share_close($share);
?>
မျှဝေထားသောအရင်းအမြစ်များကိုစတင် - curl_share_init () မှတဆင့် curl_share_init () မှတဆင့်မျှဝေထားသောလက်ကိုင် $ မျှဝေပါ ။
Sharing Options ကိုသတ်မှတ်ရန်ရွေးချယ်စရာများ - curl_share_setopt () ကိုသုံးပါ။ အထက်ပါကုဒ်များတွင်ကျွန်ုပ်တို့သည် cookies များနှင့် dns cache များကိုမျှဝေသည်။ ဤနည်းအားဖြင့် $ ရှယ်ယာ မှခပ်သိမ်းသောဆံပင်ကောက်ကောက်များအားလုံးသည်ဤအရင်းအမြစ်များကိုမျှဝေလိမ့်မည်။
Binded Mased အရင်းအမြစ်များ - curl_settop ($ ch, curlopt_share, $ share) မှတစ်ဆင့် curl_sett ($ ch, curlopt_share, $ share) မှတစ်ဆင့် session တစ်ခုချင်းစီကို curl session တစ်ခုချင်းစီတွင်မျှဝေထားသောအရင်းအမြစ်များကိုချည်နှောင်ထားသည်။ ဤနည်းအားဖြင့်တောင်းဆိုမှုများစွာကွပ်မျက်ခံရသောအခါသတ်မှတ်ထားသောအရင်းအမြစ်များကိုမျှဝေကြသည်။
တောင်းဆိုမှုများကို Execute : ကွဲပြားခြားနားသောတောင်းဆိုမှုများကိုသီးခြားစီခွဲထားပြီးတူညီသောမျှဝေထားသောအရင်းအမြစ်လက်ကိုင်ကိုသုံးသောတစ်ခုတည်းကိုသီးခြားစီလုပ်ဆောင်ပါ။
အနီးကပ်အရင်းအမြစ် : တောင်းဆိုမှုကိုကွပ်မျက်ခံရပြီးနောက် curl session တစ်ခုချင်းစီကိုပိတ်ပြီးမျှဝေထားသောလက်ကိုင်ကိုလွှတ်လိုက်ပါ။
curl_share_init နှင့်အတူကျွန်ုပ်တို့က curl တောင်းဆိုမှုများကို cookies များနှင့် dns cache ကဲ့သို့သောအရင်းအမြစ်များကိုဝေမျှခွင့်ပြုနိုင်သည်။ သို့သော်အရင်းအမြစ်ခွဲဝေမှုအမျိုးအစားနှင့် granularity ကိုဂရုပြုခြင်းသည်ကျိုးကြောင်းဆီလျော်သောထိန်းချုပ်မှုလိုအပ်သည်။ ဥပမာအားဖြင့်, HTTP ခေါင်းစီးများရှိ authentication information သို့မဟုတ်အသုံးပြုသူများအကြားမျှဝေခြင်းမပြုသင့်သည့်အခြားအချက်အလက်များကဲ့သို့သောအထိခိုက်မခံနိုင်သော session တစ်ခုမျှဝေခြင်းကိုရှောင်ရှားရန်ကြိုးစားပါ။
curl_share_init function သည် PHP ကိုတစ်ပြိုင်တည်းတောင်းဆိုမှုများအကြားအရင်းအမြစ်အချို့အကြားအရင်းအမြစ်အချို့ကိုထိရောက်စွာဝေမျှနိုင်သည့်ပြောင်းလွယ်ပြင်လွယ်ရှိသောအရင်းအမြစ်ယန္တရားဖြင့် PHP ကိုပေးသည်။ ဆင်ခြင်သုံးသပ်ခြင်းကိုပြင်ဆင်ခြင်းဖြင့်ပြင်ဆင်ခြင်းအားဖြင့်ကျွန်ုပ်တို့သည် session အထီးကျန်မှုကိုသေချာစေရန်စနစ်စွမ်းဆောင်ရည်နှင့်ထိရောက်မှုကိုတိုးတက်စေနိုင်သည်။ အသုံးပြုသူတောင်းဆိုမှုနှင့်အတူစနစ်တစ်ခုတွင် curl_share_init function ကိုဆင်ခြင်တုံတရားအသုံးပြုခြင်းသည်အရင်းအမြစ်စီမံခန့်ခွဲမှုနှင့်စွမ်းဆောင်ရည် overhead ကိုလျှော့ချပေးလိမ့်မည်။