Curl သည် Network Requests အတွက် PHP ကိုအသုံးပြုသောအခါအလွန်အစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ သို့သော်များစွာသော developer များစွာသည်တောင်းဆိုမှုများစွာကိုအပြောင်းအလဲများပြုလုပ်ရန်သို့မဟုတ်အချက်အလက်များကိုပြန်လည်အသုံးပြုရန်ကြိုးစားသည့်အခါပြ problem နာတစ်ခုနှင့်ကြုံတွေ့ရသည်။
ဤပြ issue နာကိုနားလည်ရန်ကျွန်ုပ်တို့သည်အတွင်းပိုင်းယန္တရားနှင့်အရင်းအမြစ်များကိုသယံဇာတစီမံခန့်ခွဲမှုနှင့်စတင်ရန်လိုအပ်သည်။
ဆံပင်ကောက်ကောက်သည်တောင်းဆိုချက်၏အခြေအနေကိုထိန်းသိမ်းရန် "လက်ကိုင်" ဟုခေါ်သောယန္တရားတစ်ခုကိုအသုံးပြုသည်။ Curl_init ဟုခေါ်သောအခါ PHP သည် HTTP တောင်းဆိုမှုကိုတည်ဆောက်ရန်အသုံးပြုသော "လက်ကိုင်" ဖြစ်သောအရင်းအမြစ်တစ်ခုဖန်တီးလိမ့်မည်။ ထို့နောက်အမျိုးမျိုးသော parameters တွေကိုသတ်မှတ်ရန် curl_setop () ကို သုံး ပါ။
ဤတွင်ပုံမှန်ဆံပင်ကောက်ကောက်တောင်းဆိုမှုဖြစ်စဉ်ကို:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
curl_close () ၏ရည်ရွယ်ချက်မှာ curl_init () မှတစ်ဆင့်ဖန်တီးထားသောအရင်းအမြစ်များကိုထုတ်လွှတ်ရန်ဖြစ်သည်။ အဓိပ်ပါယျမှာ:
ဆက်သွယ်မှုကိုပိတ်ထားသည်
အားလုံး settings အားလုံး (URLs, တောင်းဆိုမှုခေါင်းစဉ်များစသဖြင့်) ဖျက်ဆီးခံရ;
တောင်းဆိုမှုနှင့်သက်ဆိုင်သောအတွင်းပိုင်းကြားခံအားလုံး (တုန့်ပြန်မှုအဖွဲ့များအပါအ 0 င်) အားလုံးကိုသန့်ရှင်းရေးပြုလုပ်လိမ့်မည်။
ထို့ကြောင့်သင် Curl_Close () ဟုခေါ်ဆိုသည်နှင့်တပြိုင်နက်ကောက်ကောက်တောင်းခံခြင်းဖြင့်အသုံးပြုသောအခြေအနေကိုလုံးဝဖျက်ဆီးခြင်းနှင့်ညီမျှသည်။ တုန့်ပြန်မှု variable များကိုသင်ယခင်ကသိမ်းဆည်းထားပြီး၌ပင်အရင်းအမြစ်အချို့အရင်းအမြစ်များကိုထုတ်လွှတ်သောကြောင့် (ထိုကဲ့သို့သောလက်ကိုင်ရှိထုတ်လွှင့်အချက်အလက်များစသဖြင့်) အချို့သောသီးခြားပြည်တွင်းဒေတာများကိုသင်မသုံးနိုင်ပါ။
ဥပမာအားဖြင့်:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
// ယခုတောင်းဆိုမှုကိုသတင်းအချက်အလက်ရရန်ကြိုးစားပါ
$info = curl_getinfo($ch); // ဒါကကျရှုံးလိမ့်မယ်,$ch အားမရှိသော
အထက်ပါဥပမာတွင် curl_getinfo () ကို သုံး . အသုံးမ 0 င်နိုင်တော့ပါ။
ဆက်သွယ်မှုကိုပိတ်ပြီးသည့်နောက်တုန့်ပြန်မှုအချက်အလက်များကိုသင်ဆက်လက်ထိန်းသိမ်းရန်လိုအပ်ပါကလက်ကိုင်ကိုမပိတ်မီလိုအပ်သောအချက်အလက်များကိုသင်ဖြည်ချနိုင်သည်။ ဥပမာအားဖြင့်:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/user/profile");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$info = curl_getinfo($ch);
curl_close($ch);
// ယခု $response နှင့် $info အားလုံးလုံခြုံဖြစ်ကြသည်
သငျသညျ curl_closse မတိုင်မီသင်လိုအပ်သမျှကို extract အဖြစ်ကြာမြင့်စွာ () connection ကိုပိတ်ခြင်းလုံးဝအဆင်ပြေပါတယ်။
တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက်သို့မဟုတ်စွမ်းဆောင်ရည်မြင့်မားသောအခြေအနေများအတွက် curl_multi_init () ကို သုံး. multimlex မျိုးစုံလက်ကိုင်ဖုန်းကိုသုံးရန်သို့မဟုတ် persistent connection (Keep- အသက်ရှင်ခြင်း) နည်းပညာကို အသုံးပြု. စဉ်းစားနိုင်သည်။ PHP သည် http client များကိုပါ 0 င်သည့် http client များကိုလည်းပံ့ပိုးပေးသည်။
curl_close () ကိုခေါ်ပြီးနောက် curl ၏အခင်းအကျင်းနှင့်အရင်းအမြစ်များအားလုံးဖြန့်ချိလိမ့်မည်။ မှန်ကန်သောချဉ်းကပ်နည်းသည်လိုအပ်သောတုန့်ပြန်မှုအကြောင်းအရာကိုဖြည့်ဆည်းရန်သို့မဟုတ်ဆက်သွယ်မှုကိုမပိတ်မီသတင်းအချက်အလက်များကိုတောင်းခံရန်ဖြစ်သည်။ သယံဇာတကောက်ကောက်၏သယံဇာတသက်တမ်းကိုနားလည်ခြင်းသည် HTTP ဆက်သွယ်ရေးအတွက်၎င်းကိုပိုမိုလုံခြုံစွာနှင့်ထိရောက်စွာအသုံးပြုရန်ကူညီသည်။