curl_share_init () သည် php curl extension ကိုမျှဝေရန်အစပြုခဲ့ရန် PHPH Curl extension မှပေးသောလုပ်ဆောင်ချက်တစ်ခုဖြစ်သည်။ ဤအရာဝတ်ထုနှင့်အတူကျွန်ုပ်တို့သည်ကွဲပြားခြားနားသောဆံပင်ကောက်ကောက်တောင်းဆိုမှုများအကြား session တစ်ခုမျှဝေနိုင်ပါတယ်။ အထူးသဖြင့်စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းလိုအပ်ကြောင်းတောင်းဆိုမှုများပြုလုပ်သောအခါဤမျှဝေထားသော session data data များသည်မိတ္တူပွားများကိုသိသိသာသာလျှော့ချပေးပြီးအစီအစဉ်၏စွမ်းဆောင်ရည်ကိုတိုးတက်စေသည်။
$ch_share = curl_share_init();
အထက်ဖော်ပြပါကုဒ်များသည်မျှဝေထားသောအရင်းအမြစ်အရာဝတ်ထု $ ch_share ကို အကန့်အသတ်ဖြင့်ဖော်ပြထားသည်။
သင်မျှဝေထားသောအရာဝတ်ထုတစ်ခုကိုသင်ဖန်တီးပြီးသည်နှင့် curl_share_setopt () မှတဆင့်မည်သည့်သတင်းအချက်အလက်မျှဝေရန်လိုအပ်သည့်အရာကိုသတ်မှတ်နိုင်သည်။ ဘုံမျှဝေထားသောအချက်အလက်များတွင် -
curl_share_cookie : မျှဝေ cookies များ
curl_share_header : header အချက်အလက်များကိုမျှဝေပါ
curl_share_request : တောင်းဆိုမှုသတင်းအချက်အလက်များကိုမျှဝေပါ
curl_share_setopt($ch_share, CURL_SHARE_COOKIE, true);
အထက်ပါ settings များနှင့်အတူတောင်းဆိုမှုများစွာသည် login status ကိုထိန်းသိမ်းရန်မရှိမဖြစ်လိုအပ်သော cookie အချက်အလက်များကိုမျှဝေနိုင်သည်။
မျှဝေထားသောအရာဝတ်ထုကိုအစပျိုးပြီးသက်ဆိုင်ရာရွေးချယ်စရာများကိုသတ်မှတ်ပြီးသည်နှင့်ဤမျှဝေထားသောအရင်းအမြစ်ကိုမတူညီသောတောင်းဆိုမှုများတွင်ဤမျှဝေထားသောအရင်းအမြစ်ကိုသုံးနိုင်သည်။ ပထမ ဦး စွာ curl sessions များစွာကိုဖန်တီးပြီး session တစ်ခုစီအတွက်မျှဝေထားသောအရင်းအမြစ်အရာဝတ်ထုကိုချည်နှောင်ပါ။
$ch1 = curl_init();
$ch2 = curl_init();
// မျှဝေထားသောအရင်းအမြစ်ကိုချည်နှောင်ပါ cURL ရုံးထိုင်အချိန်ကာလ
curl_setopt($ch1, CURLOPT_SHARE, $ch_share);
curl_setopt($ch2, CURLOPT_SHARE, $ch_share);
// သတ်မှတ်ထားတဲ့ set URL(အမှန်တကယ်တောင်းဆိုမှုနှင့်အတူအစားထိုးလိုက်ပါ)
curl_setopt($ch1, CURLOPT_URL, 'https://m66.net/api/login');
curl_setopt($ch2, CURLOPT_URL, 'https://m66.net/api/data');
// တောင်းဆိုမှုကို execute
curl_exec($ch1);
curl_exec($ch2);
// 关闭ရုံးထိုင်အချိန်ကာလ
curl_close($ch1);
curl_close($ch2);
အထက်ဖော်ပြပါဥပမာတွင် $ ch1 နှင့် $ ch2 သည်စစ်မှန်ကြောင်းအထောက်အထားပြသခြင်းအခြေအနေနှင့်ကွတ်ကီးသတင်းအချက်အလက်များကိုမျှဝေနိုင်သည့်အတွက်၎င်းတို့နှစ် ဦး စလုံးသည်တူညီသော login session ကိုသုံးနိုင်သည်။
curl session များအားလုံးပြီးစီးသောအခါမှတ်ဉာဏ်ယိုစိမ့်မှုများကိုရှောင်ရှားရန်မျှဝေထားသောအရင်းအမြစ်များကိုလွတ်မြောက်ရန်သတိရပါ။
curl_share_close($ch_share);
logging in loging လုပ်ပြီး logged in in လုပ်ပြီး 0 င်ရောက်ပြီး 0 င်ရောက်ပြီး 0 င ်ရောက်ပြီး 0 င် ရောက်ပြီး, ဤတွင်ပြည့်စုံသောဥပမာတစ်ခုမှာ -
<?php
// မျှဝေထားသောအရင်းအမြစ်များကိုစတင်ပါ
$ch_share = curl_share_init();
// မျှဝေခြင်းရွေးချယ်စရာများကိုသတ်မှတ်ပါ(မျှဝေခဲ့သည် Cookie)
curl_share_setopt($ch_share, CURL_SHARE_COOKIE, true);
// ပထမတစ်ခုဖန်တီးပါ cURL ရုံးထိုင်အချိန်ကာလ(login တောင်းဆိုမှု)
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_SHARE, $ch_share);
curl_setopt($ch1, CURLOPT_URL, 'https://m66.net/api/login');
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch1, CURLOPT_POST, true);
curl_setopt($ch1, CURLOPT_POSTFIELDS, [
'username' => 'your_username',
'password' => 'your_password'
]);
// 执行login တောင်းဆိုမှု
$response1 = curl_exec($ch1);
// တစ်စက္ကန့်ကိုဖန်တီးပါ cURL ရုံးထိုင်အချိန်ကာလ(ဒေတာကိုရယူပါ)
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_SHARE, $ch_share);
curl_setopt($ch2, CURLOPT_URL, 'https://m66.net/api/userdata');
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, true);
// ဒေတာတောင်းဆိုမှုများလုပ်ဆောင်ပါ
$response2 = curl_exec($ch2);
// ရလဒ်ရလဒ်
echo $response1;
echo $response2;
// 关闭ရုံးထိုင်အချိန်ကာလ
curl_close($ch1);
curl_close($ch2);
// 释放မျှဝေခဲ့သည်资源
curl_share_close($ch_share);
?>
ဤဥပမာတွင် login တောင်းဆိုမှုနှင့်ဒေတာတောင်းဆိုမှုသည်စစ်မှန်ကြောင်းအထောက်အထားပြဌာန်းချက်အခြေအနေနှင့်ကွတ်ကီးများကိုမျှဝေပါ။ ထို့ကြောင့် Login စစ်ဆင်ရေးများကိုရှောင်ရှားနိုင်သည်။
curl_share_init () နှင့် curl_share_setopt () နှင့်အတူကျွန်ုပ်တို့သည် curl တောင်းဆိုမှုများအကြားစစ်မှန်ကြောင်းအတည်ပြုမှုအခြေအနေနှင့် session တစ်ခုကိုလည်းမျှဝေနိုင်ပြီးတောင်းဆိုမှုများစွာတွင်ထိရောက်မှုကိုသိသိသာသာတိုးတက်စေသည်။ ရှုပ်ထွေးသော API ခေါ်ဆိုမှုများသို့မဟုတ်သင် log in လုပ်ထားရန်လိုအပ်သည့်အခါဖြစ်စဉ်များတွင်ဤနည်းလမ်းသည် developer များက developer များကမလိုအပ်သောပွားစစ်မှန်သောစစ်ဆင်ရေးလုပ်ငန်းများကိုလျှော့ချရန်နှင့်အချိန်နှင့်အရင်းအမြစ်များကိုသက်သာစေသည်။