curl_share_init () function ကို () function ကိုမျှဝေထားသောအရင်းအမြစ်အတွက်ဆံပင်ကောက်ကောက်ကိုဖန်တီးရန်အသုံးပြုသည်။ ဤမျှဝေထားသောအရင်းအမြစ်လက်ကိုင်မှတစ်ဆင့် curl session များ (i.e. curl furl) မှတစ်ဆင့်တူညီသောအရင်းအမြစ်များကိုမျှဝေနိုင်သည်။ ဤယန္တရား၏အဓိကရည်ရွယ်ချက်မှာ,
သင်ဆံပင်ကောက်ကောက်စာများကိုအသုံးပြုသောအခါ session တစ်ခုစီသည်ဒိုမိန်းအမည်ကိုပြန်လည်ဖြေရှင်းရန်နှင့်ကွတ်ကီးများနှင့်အခြားအရင်းအမြစ်များကိုရယူရန်လိုအပ်နိုင်သည်။ အရင်းအမြစ်များကိုမျှဝေခြင်းအားဖြင့်ဤမလိုအပ်သောစစ်ဆင်ရေးများကိုရှောင်ရှားနိုင်သည်။
curl_share_init () function မှတဆင့်အချို့သောအခြေခံအရင်းအမြစ်များကို curl session များအကြားဝေမျှနိုင်သည်။ HTTP တောင်းဆိုမှုများတွင်များစွာသောလုပ်ငန်းများ (ဥပမာ DNS မေးမြန်းချက်များ, cookies များစသကဲ့သို့) လုပ်ငန်းလည်ပတ်မှုများပြုလုပ်သောတောင်းဆိုမှုများကိုပြုလုပ်ရာတွင်မျှဝေထားပြီးမျှဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုခြင်းသည်ဤစစ်ဆင်ရေးများ၏ overhead ကိုသိသိသာသာလျှော့ချပေးလိမ့်မည်။
သင်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများပြုလုပ်နေသည်ဆိုပါစို့။ တောင်းဆိုမှုတစ်ခုစီသည်လွတ်လပ်သော DNS Query, Cookie Saving နှင့်အခြားလုပ်ငန်းများလိုအပ်သည်ဆိုပါစို့။ အကယ်. ဤလုပ်ငန်းများကိုမတူညီသောတောင်းဆိုမှုများတွင်မျှဝေနိုင်သည်ဆိုပါကတောင်းဆိုမှု၏ကွပ်မျက်မှု၏ထိရောက်မှုကိုသိသိသာသာတိုးတက်အောင်လုပ်နိုင်ပြီးတောင်းဆိုမှုနှုန်းသုံးစွဲမှုကိုလျှော့ချနိုင်သည်။
အောက်ဖော်ပြပါသည် curl_share_init () function ကို အသုံးပြု. ဥပမာတစ်ခုမှာအရင်းအမြစ်များကိုမျှဝေခြင်းဖြင့် PHP ၏စွမ်းဆောင်ရည်ကိုမည်သို့တိုးတက်အောင်လုပ်ရမည်ကိုပြသသည်။
<?php
// မျှဝေထားသောအရင်းအမြစ်များကိုစတင်ပါ
$ch_share = curl_share_init();
curl_share_setopt($ch_share, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
curl_share_setopt($ch_share, CURLSHOPT_SHARE, CURL_LOCK_DATA_DNS);
// တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကို set up URL စာရင်း
$urls = [
'http://m66.net/api/data1',
'http://m66.net/api/data2',
'http://m66.net/api/data3',
];
// မျိုးစုံဖန်တီးပါ cURL လက်ကိုင်
$multi_handle = curl_multi_init();
$curl_handles = [];
foreach ($urls as $url) {
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SHARE, $ch_share); // မျှဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုခြင်း
curl_multi_add_handle($multi_handle, $ch);
$curl_handles[] = $ch;
}
// တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများဖျော်ဖြေ
$running = null;
do {
curl_multi_exec($multi_handle, $running);
curl_multi_select($multi_handle);
} while ($running > 0);
// ရရှိသောရလဒ်ကိုရယူပါ
foreach ($curl_handles as $ch) {
$response = curl_multi_getcontent($ch);
echo $response . "\n";
curl_multi_remove_handle($multi_handle, $ch);
}
// အရင်းအမြစ်ကိုပိတ်ပါ
curl_multi_close($multi_handle);
curl_share_close($ch_share);
?>
Shared Resource Initialization : ပထမ ဦး စွာ Curl_share_init မှတဆင့်မျှဝေထားသောအရင်းအမြစ် လက်ကိုင် ကိုဖန်တီးပါ။ ထို့နောက်ကျွန်ုပ်တို့သည် curl_share_setopt () မှတဆင့်မျှဝေထားသောအရင်းအမြစ်များကို သတ်မှတ်. cookies များနှင့် DNS အချက်အလက်များကဲ့သို့သောအရင်းအမြစ်များကိုမျှဝေရန်အရင်းအမြစ်များကိုသတ်မှတ်ပါ။
URL စာရင်းကိုတစ်ပြိုင်တည်းတောင်းဆိုမှုများအတွက် URL စာရင်းကိုချိန်ညှိခြင်း - ကျွန်ုပ်တို့တစ်ပြိုင်နက်တည်းတောင်းဆိုရန် URLs မျိုးစုံကိုကိုယ်စားပြုသော URLs များကိုသတ်မှတ်သည်။
Curl လက်ကိုင်ကိုဖန်တီးပါ ။ URL တစ်ခုချင်းစီအတွက် Curlopt_SHARE Option ကိုအရင်ကဖန်တီးထားသော shared အရင်းအမြစ်လက်ကိုင်လက်ကိုင် ဒေါ်လာ Ch_Share အတွက် curlopt_Sare option ကိုသတ်မှတ်ပါ။
တစ်ပြိုင်နက်တည်းကွပ်မျက်တောင်းဆိုမှု - ကျွန်ုပ်တို့က curl_multi_init () ကိုအသုံးပြုသည် ။ တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကို curl_multi_exec () မှတောင်းဆိုမှုများအားလုံးကိုမပြီးမချင်းကွပ်မျက်သည်။
ရလဒ်ကိုရရှိသောရလဒ်ကိုရယူပါ ။ တောင်းဆိုချက်တစ်ခုစီ၏ Real_multi_getcontent () နှင့် output ကိုမှရရှိသောရလဒ်ကိုရယူပါ။
Cloud Resource : တောင်းဆိုမှုကိုပြီးစီးပြီးနောက် curl_multi_close () ကို သုံး ပါ။
curl_share_init ကို အသုံးပြုခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်တောင်းဆိုမှုတစ်ခုစီအတွက်လွတ်လပ်သော DNS မေးမြန်းချက်များနှင့် cookies များကိုရှောင်ရှားသည်။ ကွဲပြားခြားနားသောကွန်ယက်ပတ်ဝန်းကျင်နှင့်တောင်းဆိုမှုများအရေအတွက်အပေါ် အခြေခံ. တိကျသောစွမ်းဆောင်ရည်တိုးတက်မှုအကျိုးသက်ရောက်မှုကိုတိုင်းတာသင့်သည်။ တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအမြောက်အများအမှု၌မိတ္တူပွားများမေးမြန်းခြင်းနှင့်အရင်းအမြစ်များကိုလျှော့ချခြင်းနှင့်ရင်းမြစ်တင်ခြင်းသည်တောင်းဆိုချက်၏စွမ်းဆောင်ရည်ကိုသိသိသာသာတိုးတက်စေနိုင်သည်။
သို့သော် curl_share_init () သည် အခြေအနေအားလုံးအတွက်အလုပ်မလုပ်ပါ။ အကယ်. တောင်းဆိုထားသောအကြောင်းအရာသည်လုံးဝကွဲပြားခြားနားပြီးတောင်းဆိုထားသောအရင်းအမြစ်တစ်ခုစီကိုလွတ်လပ်စွာဆောင်ရွက်ရန်လိုအပ်ပါကမျှဝေထားသောအရင်းအမြစ်များကိုအသုံးပြုခြင်းသည်သိသာစွမ်းအင်သိသိသာသာတိုးတက်လာမည်မဟုတ်ပါ။ တောင်းဆိုမှုများတွင်အချို့သောအရင်းအမြစ်များကိုမျှဝေရန်လိုအပ်ပါကမျှဝေထားသော curl အရင်းအမြစ်ကိုသာအသုံးပြုသည်။
Curl_Share_init () function သည် Multipreaded တောင်းဆိုမှုများတွင်စွမ်းဆောင်ရည်များစွာတိုးတက်လာသည်။ ခွဲဝေထားသောအရင်းအမြစ်များကိုဆင်ခြင်တုံတရားဖြင့်အသုံးချခြင်းအားဖြင့်ကျွန်ုပ်တို့သည်ထပ်တူစစ်ဆင်ရေးများကိုလျှော့ချပြီးတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများ၏ထိရောက်မှုကိုအကောင်းဆုံးဖြစ်စေနိုင်သည်။ သို့သော် curl_share_init () ကို အသုံးပြုခြင်းသည်အရင်းအမြစ်များမလိုအပ်သည့်အခြေအနေများတွင်သိသာသောစွမ်းဆောင်ရည်တိုးတက်မှုများကိုဖြစ်ပေါ်စေနိုင်သည်။ ထို့ကြောင့်ဤလုပ်ဆောင်မှုကိုအသုံးပြုရန်ဖြစ်စေတိကျသောလိုအပ်ချက်များနှင့်အခြေအနေများအပေါ်တွင် အခြေခံ. ဆုံးဖြတ်သင့်သည်။