ဆံပင်ကောက်ကောက် သည် HTTP တောင်းဆိုမှုများအတွက် PHP ကိုအသုံးပြုသောအခါအသုံးပြုလေ့ရှိပြီးအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ များစွာသော developer များစွာသည် Apis သို့မဟုတ် 0 က်ဘ်စာမျက်နှာဒေတာများကိုခေါ်သည့်အခါတောင်းဆိုမှုကိုပြီးမြောက်ရန် ဆံပင်ကောက်ကောက်ကို အသုံးပြုသည်။ သို့သော် Readed data ကို curl_close () ကို မခေါ်မီ () ကိုမမှန်ကန်စွာဖမ်းယူနိုင်ခြင်းမရှိပါက၎င်းသည်ဒေတာဆုံးရှုံးမှုသို့မဟုတ်အမှားများကိုကိုင်တွယ်နိုင်သည်။ ထို့ကြောင့်ဤဆောင်းပါးသည် curl_close () မခေါ်မီ ဆံပင်ကောက်ကောက်တောင်းခံခြင်းဖြင့် ပြန်ပို့ခြင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့မှန်ကန်စွာဖမ်းယူနိုင်ကြောင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့မှန်ကန်စွာဖမ်းယူနိုင်မည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည်။
ကောက်ကောက်ကို အသုံးပြု. အခြေခံအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -
အဆိုပါဆံပင်ကောက်ကောက် session ကိုစတင်;
ရွေးစရာများကိုသတ်မှတ်ပါ။
တောင်းဆိုမှုကို execute;
ပြန်လာတန်ဖိုးကိုရယူပါ။
session ကိုပိတ်ပါ။
ဥပမာအားဖြင့်:
$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);
ဤဥပမာတွင် $ တုန့်ပြန်မှုသည် Remote server မှပြန်လာသောအကြောင်းအရာကိုကယ်တင်သည်။ Return Value ကို curl_close () ခေါ်ဆိုမှုမတိုင်မီပြုလုပ်ရမည်ဟု သတိပြုပါ။ ဘာဖြစ်လို့လဲဆိုတော့ curl_close () သည် သယံဇာတများကိုအခမဲ့ဖြစ်လိမ့်မည်။
ဒေတာများကိုနဂိုအတိုင်းနှင့်ယုံကြည်စိတ်ချစွာဖမ်းယူနိုင်ကြောင်းသေချာစေရန်အောက်ပါအချက်များကိုကျွန်ုပ်တို့ဂရုပြုသင့်သည်။
ဤသည်အများဆုံးအရေးအကြီးဆုံးခြေလှမ်းဖြစ်ပါတယ်။ ပုံမှန်အားဖြင့်ရလဒ်ကိုတန်ဖိုးကိုပြန်ပို့မည့်အစားရလဒ်ကိုပုံမှန် output (browser) သို့တိုက်ရိုက်ထုတ်လွှင့ ် ခြင်း။ အကယ်. သင်သည်ကုဒ်မှတဆင့်ပြန်ပို့မည့်အကြောင်းအရာကိုထပ်မံလုပ်ဆောင်လိုပါကဤ option ကိုသတ်မှတ်ရမည်။
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
တောင်းဆိုမှုကိုကွပ်မျက်ပြီးနောက်ပြန်လာသောတန်ဖိုးကိုဆုံးဖြတ်ရန်အကြံပြုသည်။
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
die("cURL တောင်းဆိုမှုပျက်ကွက်: $error");
}
၎င်းသည်မှန်ကန်သောအချက်အလက်များအဖြစ်မှားယွင်းစွာလုပ်ဆောင်ခြင်းမှတုန့်ပြန်မှုမရှိသည့်သို့မဟုတ်မှားယွင်းသောတုံ့ပြန်မှုများကိုကာကွယ်ပေးသည်။
အကယ်. သင်တောင်းဆိုမှုသည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်လိုအပ်ပါက HTTP status code သည် 200 ဟုတ်မဟုတ်ကိုသင်အသုံးပြုနိုင်သည်။
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
တရားစီရင်ရာယုတ္တိဗေဒနှင့် တွဲဖက်. အသုံးပြုပါ။
if ($httpCode !== 200) {
curl_close($ch);
die("တောင်းဆိုမှုပျက်ကွက်,HTTP အခြေအနေကုဒ်: $httpCode");
}
အချက်အလက်များကိုလုံခြုံစွာဖမ်းယူခြင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့လုံခြုံစွာဖမ်းယူရမည်ကိုပြသည့်ဥပမာပြည့်စုံသောဥပမာတစ်ခုရှိသည်။
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://gitbox.net/api/userinfo");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10); // မလုပ်မနေရမဟုတ်သော:အချိန်ကုန်ထားပါ
$response = curl_exec($ch);
if ($response === false) {
$error = curl_error($ch);
curl_close($ch);
die("အမှားတောင်းဆိုခြင်း: $error");
}
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode !== 200) {
die("接口တောင်းဆိုမှုပျက်ကွက်,အခြေအနေကုဒ်: $httpCode");
}
// ကိုင်တွယ်ဖြေရှင်းသည် JSON တုံ့ပြန်ချက်
$data = json_decode($response, true);
if (json_last_error() !== JSON_ERROR_NONE) {
die("JSON ခွဲခြမ်းစိတ်ဖြာခြင်းမအောင်မြင်ပါ: " . json_last_error_msg());
}
// နမူနာ output ကို
echo "အသုံးပြုသူ: " . $data['username'];
curl_close () နှင့်အတူဆံပင်ကောက်ကောက် seaster ကိုမပိတ်မီ -
ပြန်လာသောအချက်အလက်များကိုရယူရန် curlopt_ruturnturtransfer ကို သုံးပါ။
curl_exec () အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ။
တောင်းဆိုမှုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် status code ကိုရယူပါ;
နောက်ဆုံးတွင် curl_close () ကိုအရင်းအမြစ်ကိုထုတ်ပြန်ရန်ခေါ်သည်။
အထက်ပါအဆင့်များမှတဆင့်သင်က curl တောင်းဆိုမှုတိုင်းကိုလုံလုံခြုံခြုံနှင့်လုံလုံခြုံခြုံကိုင်တွယ်ရန်သေချာစေနိုင်သည်။ ၎င်းသည်ခိုင်မာသောကွန်ယက်ဆက်သွယ်ရေးစွမ်းရည်ကိုတည်ဆောက်ခြင်းအတွက်အထူးအရေးကြီးသည်။