လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> curl_close မတိုင်မီကတောင်းဆိုမှုတစ်ခု၏ပြန်လာအချက်အလက်များကိုမည်သို့သေချာအောင်လုပ်ရမည်နည်း။

curl_close မတိုင်မီကတောင်းဆိုမှုတစ်ခု၏ပြန်လာအချက်အလက်များကိုမည်သို့သေချာအောင်လုပ်ရမည်နည်း။

gitbox 2025-05-20

ဆံပင်ကောက်ကောက် သည် HTTP တောင်းဆိုမှုများအတွက် PHP ကိုအသုံးပြုသောအခါအသုံးပြုလေ့ရှိပြီးအစွမ်းထက်သောကိရိယာတစ်ခုဖြစ်သည်။ များစွာသော developer များစွာသည် Apis သို့မဟုတ် 0 က်ဘ်စာမျက်နှာဒေတာများကိုခေါ်သည့်အခါတောင်းဆိုမှုကိုပြီးမြောက်ရန် ဆံပင်ကောက်ကောက်ကို အသုံးပြုသည်။ သို့သော် Readed data ကို curl_close () ကို မခေါ်မီ () ကိုမမှန်ကန်စွာဖမ်းယူနိုင်ခြင်းမရှိပါက၎င်းသည်ဒေတာဆုံးရှုံးမှုသို့မဟုတ်အမှားများကိုကိုင်တွယ်နိုင်သည်။ ထို့ကြောင့်ဤဆောင်းပါးသည် curl_close () မခေါ်မီ ဆံပင်ကောက်ကောက်တောင်းခံခြင်းဖြင့် ပြန်ပို့ခြင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့မှန်ကန်စွာဖမ်းယူနိုင်ကြောင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့မှန်ကန်စွာဖမ်းယူနိုင်မည်ကိုအသေးစိတ်မိတ်ဆက်ပေးပါမည်။

အခြေခံဖြစ်စဉ်ကိုပြန်လည်သုံးသပ်ခြင်း

ကောက်ကောက်ကို အသုံးပြု. အခြေခံအဆင့်များမှာအောက်ပါအတိုင်းဖြစ်သည် -

  1. အဆိုပါဆံပင်ကောက်ကောက် session ကိုစတင်;

  2. ရွေးစရာများကိုသတ်မှတ်ပါ။

  3. တောင်းဆိုမှုကို execute;

  4. ပြန်လာတန်ဖိုးကိုရယူပါ။

  5. 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 () သည် သယံဇာတများကိုအခမဲ့ဖြစ်လိမ့်မည်။

ဖမ်းယူဖို့မှန်ကန်သောနည်းလမ်း

ဒေတာများကိုနဂိုအတိုင်းနှင့်ယုံကြည်စိတ်ချစွာဖမ်းယူနိုင်ကြောင်းသေချာစေရန်အောက်ပါအချက်များကိုကျွန်ုပ်တို့ဂရုပြုသင့်သည်။

1 ။ curlopt_rreturntransfer စစ်မှန်တဲ့ ရန်

ဤသည်အများဆုံးအရေးအကြီးဆုံးခြေလှမ်းဖြစ်ပါတယ်။ ပုံမှန်အားဖြင့်ရလဒ်ကိုတန်ဖိုးကိုပြန်ပို့မည့်အစားရလဒ်ကိုပုံမှန် output (browser) သို့တိုက်ရိုက်ထုတ်လွှင့ ခြင်း။ အကယ်. သင်သည်ကုဒ်မှတဆင့်ပြန်ပို့မည့်အကြောင်းအရာကိုထပ်မံလုပ်ဆောင်လိုပါကဤ option ကိုသတ်မှတ်ရမည်။

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

2 ။ curl_exec () ပြန်လာတန်ဖိုးကိုစစ်ဆေးပါ

တောင်းဆိုမှုကိုကွပ်မျက်ပြီးနောက်ပြန်လာသောတန်ဖိုးကိုဆုံးဖြတ်ရန်အကြံပြုသည်။

 $response = curl_exec($ch);
if ($response === false) {
    $error = curl_error($ch);
    curl_close($ch);
    die("cURL တောင်းဆိုမှုပျက်ကွက်: $error");
}

၎င်းသည်မှန်ကန်သောအချက်အလက်များအဖြစ်မှားယွင်းစွာလုပ်ဆောင်ခြင်းမှတုန့်ပြန်မှုမရှိသည့်သို့မဟုတ်မှားယွင်းသောတုံ့ပြန်မှုများကိုကာကွယ်ပေးသည်။

3 ။ တုန့်ပြန်မှုခေါင်းစဉ်သို့မဟုတ် status ကုဒ်ကိုရယူပါ။

အကယ်. သင်တောင်းဆိုမှုသည်အောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန်လိုအပ်ပါက HTTP status code သည် 200 ဟုတ်မဟုတ်ကိုသင်အသုံးပြုနိုင်သည်။

 $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

တရားစီရင်ရာယုတ္တိဗေဒနှင့် တွဲဖက်. အသုံးပြုပါ။

 if ($httpCode !== 200) {
    curl_close($ch);
    die("တောင်းဆိုမှုပျက်ကွက်,HTTP အခြေအနေကုဒ်: $httpCode");
}

4 ။ ပြီးပြည့်စုံသောဥပမာ

အချက်အလက်များကိုလုံခြုံစွာဖမ်းယူခြင်းနှင့်လုပ်ငန်းစဉ်ကိုမည်သို့လုံခြုံစွာဖမ်းယူရမည်ကိုပြသည့်ဥပမာပြည့်စုံသောဥပမာတစ်ခုရှိသည်။

 $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 ကိုမပိတ်မီ -

  1. ပြန်လာသောအချက်အလက်များကိုရယူရန် curlopt_ruturnturtransfer ကို သုံးပါ။

  2. curl_exec () အောင်မြင်မှုရှိမရှိစစ်ဆေးပါ။

  3. တောင်းဆိုမှုအောင်မြင်မှုရှိမရှိဆုံးဖြတ်ရန် status code ကိုရယူပါ;

  4. နောက်ဆုံးတွင် curl_close () ကိုအရင်းအမြစ်ကိုထုတ်ပြန်ရန်ခေါ်သည်။

အထက်ပါအဆင့်များမှတဆင့်သင်က curl တောင်းဆိုမှုတိုင်းကိုလုံလုံခြုံခြုံနှင့်လုံလုံခြုံခြုံကိုင်တွယ်ရန်သေချာစေနိုင်သည်။ ၎င်းသည်ခိုင်မာသောကွန်ယက်ဆက်သွယ်ရေးစွမ်းရည်ကိုတည်ဆောက်ခြင်းအတွက်အထူးအရေးကြီးသည်။