လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Curl_multi_clocession function ကို အသုံးပြု. Redirect Resolution Redirect Resolution ကိုကိုင်တွယ်ဖြေရှင်းရန်မည်သို့အသုံးပြုရမည်နည်း။

Curl_multi_clocession function ကို အသုံးပြု. Redirect Resolution Redirect Resolution ကိုကိုင်တွယ်ဖြေရှင်းရန်မည်သို့အသုံးပြုရမည်နည်း။

gitbox 2025-05-12

curl_mamulti_ * စီးရီးလုပ်ဆောင်ချက်များသည်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက် PHP ၏ဆံပင်ကောက်ကောက်တိုးချဲ့မှုကိုအသုံးပြုသောအခါအလွန်များသောအားဖြင့်အလွန်များသောအားဖြင့်ဖြစ်သည်။ curl_multi_close () သည်အရင်းအမြစ်များကိုထုတ်လွှတ်ရန်နှင့်ဆံပင်ကောက်ကောက်ကိုစုဆောင်းရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ သို့ရာတွင် developer များစွာသည် (301, 302 စသည့် 302) ။

ဤဆောင်းပါးသည်သင့်အား Curl_multi_Close () ကို မှန်ကန်စွာအသုံးပြုရန်တောင်းဆိုခြင်းကိုနိယာမတစ်ခုမှသင့်အားမှန်ကန်စွာအသုံးပြုရန်တောင်းဆိုခြင်းနှင့်လက်တွေ့ကျကျရှုထောင့်မှတစ်ဆင့်တောင်းဆိုခြင်းကိုရှောင်ကြဉ်ပါ။

curl_mamulti_close ၏အခြေခံအခန်းကဏ်ကိုနားလည်ပါ

ပထမ ဦး စွာ curl_multi_close ၏အဓိကလုပ်ဆောင်ချက်များ ($ multi_handle) ၏အဓိကလုပ်ဆောင်ချက်များသည် -

  • Multi Handler ကိုပိတ်ပါ

  • အားလုံးနှင့်တစ်ချိန်တည်းမှာအားလုံးဆက်စပ်အရင်းအမြစ်များကိုလွှတ်ပေးရန်

အရေးကြီးသောအချက်များ

  • curl_multi_close () သည်သယံဇာတများသန့်ရှင်းရေးအတွက်သာတာဝန်ရှိကြောင်းနှင့် redirects ကိုအလိုအလျောက်ကိုင်တွယ်မည်မဟုတ်ပါ

  • Redirects များကိုတောင်းဆိုမှုကိုအကောင်အထည်ဖော်ရန်လုပ်ဆောင်ခြင်း (ဥပမာ - curl_multi_exec () ) မတိုင်မီ setting options)) တွင်ဖြည့်စွက်ရမည်။

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

ထို့ကြောင့် curl_multi_close () ကိုမခေါ်မီတောင်းဆိုမှုများအားလုံးကိုအပြည့်အဝကွပ်မျက်ခံရပြီးလိုအပ်သောတုန့်ပြန်မှုများကိုဖတ်ရှုရန်သေချာစေရမည်။

redirect တုံ့ပြန်မှုများကိုမှန်ကန်စွာကိုင်တွယ်ပါ

Redirect ကိုမှန်ကန်စွာလိုက်နာရန်နှင့်ပိတ်ခြင်းမပြုမီနောက်ဆုံးတုန့်ပြန်မှုကိုခံယူရန်ဆံပင်ကောက်ကောက်ရရန်သင်ဤသို့ပြုသင့်သည် -

  1. အလိုအလျောက်နောက်ဆက်တွဲ redirect ခွင့်ပြုရန် cur ရှု options များကိုသတ်မှတ်ပါ

  2. တောင်းဆိုမှုကိုလုံးဝ execute နှင့်လိုအပ်သောဒေတာအားလုံးကိုပြန်လည်ရယူပါ။

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

နမူနာကုဒ်

 <?php
// Multi-handle processor ကိုဖန်တီးပါ
$multiHandle = curl_multi_init();

// သီးခြားစတင် cURL ရုံးထိုင်အချိန်ကာလ
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://gitbox.net/redirect-example');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // အလိုအလျောက်နောက်ဆက်တွဲ redirects ခွင့်ပြုပါ
curl_setopt($ch, CURLOPT_MAXREDIRS, 5); // အများစုမှာလိုက်နာပါ5ပယ်ဖျက်ခြင်း

// 将ရုံးထိုင်အချိန်ကာလ添加到多句柄处理器
curl_multi_add_handle($multiHandle, $ch);

// တောင်းဆိုမှုကို execute
$running = null;
do {
    $status = curl_multi_exec($multiHandle, $running);
    if ($status > 0) {
        echo "cURL Error: " . curl_multi_strerror($status);
    }
    // တက်ကြွစွာဆက်သွယ်မှုကိုစောင့်ဆိုင်း
    curl_multi_select($multiHandle);
} while ($running > 0);

// မပိတ်မီအကြောင်းအရာနှင့်အချက်အလက်များကိုရယူပါ
$response = curl_multi_getcontent($ch);
$info = curl_getinfo($ch);

// တုံ့ပြန်မှုအကြောင်းအရာပုံနှိပ်ပါ
echo "Final URL: " . $info['url'] . PHP_EOL;
echo "HTTP Code: " . $info['http_code'] . PHP_EOL;
echo "Response Body: " . $response . PHP_EOL;

// ဆေးခြင်း
curl_multi_remove_handle($multiHandle, $ch);
curl_close($ch);
curl_multi_close($multiHandle);
?>

အဓိကအဓိပ္ပာယ်ဖွင့်ဆိုချက်

  • redirects များကိုအလိုအလျောက်ကိုင်တွယ်ရန် curlopt_Followolloclock သည် မှန်ကန်သည်

  • curl_multi_exec ကို ပြည့်အ 0 ကွပ်မျက်ခံရပြီး,

  • curl_multi_close () ကို ဒေတာကိုအပြည့်အ 0 ရယူပြီးနောက်လုံခြုံစွာခေါ်ဆိုနိုင်သည်။

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

သာမန်အမှားဥပမာ

ဒီမှာရေးဖို့အမှားအယွင်းတစ်ခုဖြစ်တဲ့နည်းလမ်းတစ်ခုပါ။

 <?php
$multiHandle = curl_multi_init();
$ch = curl_init('https://gitbox.net/redirect-example');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_multi_add_handle($multiHandle, $ch);

// အမှား:အကယ်. ကွပ်မျက်ပြီးစီးခြင်းမပြီးဆုံးပါကတိုက်ရိုက်ပိတ်ပါ
curl_multi_close($multiHandle);

$response = curl_multi_getcontent($ch); // ယခုအချိန်တွင်ရရှိသောအကြောင်းအရာများသည်အလွတ်သို့မဟုတ် undefined ဖြစ်နိုင်သည်
?>

ပြနာခွဲခြမ်းစိတ်ဖြာခြင်း :
တောင်းဆိုမှုမပြီးဆုံးမီ Multi Multi Multi ကိုပိတ်ထားသည်။

အကျဉ်းချုပ်

  • curl_multi_close () သည် redirects ကိုမကိုင်တွယ်နိုင်ပါ , အရင်းအမြစ်များကိုသန့်ရှင်းရေးအတွက်သာတာဝန်ရှိသည်။

  • redirection ကို curlopt_Followloclocation setting ကိုသတ်မှတ်ခြင်းဖြင့်သတ်မှတ်ခြင်းကိုပိတ်ထားရမည်။

  • curl_multi_close မတိုင်မီ လိုအပ်သောဒေတာအားလုံးကို extract လုပ်ရန် သေချာပါစေ။

  • မှန်ကန်သောအမှာစာ (Execute → content → Remove Hander → Remile → close multi) ကိုတောင်းဆိုခြင်းနှင့်ဒေတာသည်မပျောက်ပါစေနှင့်။

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