curl_mamulti_ * စီးရီးလုပ်ဆောင်ချက်များသည်တစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများအတွက် PHP ၏ဆံပင်ကောက်ကောက်တိုးချဲ့မှုကိုအသုံးပြုသောအခါအလွန်များသောအားဖြင့်အလွန်များသောအားဖြင့်ဖြစ်သည်။ curl_multi_close () သည်အရင်းအမြစ်များကိုထုတ်လွှတ်ရန်နှင့်ဆံပင်ကောက်ကောက်ကိုစုဆောင်းရန်အသုံးပြုသော function တစ်ခုဖြစ်သည်။ သို့ရာတွင် developer များစွာသည် (301, 302 စသည့် 302) ။
ဤဆောင်းပါးသည်သင့်အား Curl_multi_Close () ကို မှန်ကန်စွာအသုံးပြုရန်တောင်းဆိုခြင်းကိုနိယာမတစ်ခုမှသင့်အားမှန်ကန်စွာအသုံးပြုရန်တောင်းဆိုခြင်းနှင့်လက်တွေ့ကျကျရှုထောင့်မှတစ်ဆင့်တောင်းဆိုခြင်းကိုရှောင်ကြဉ်ပါ။
ပထမ ဦး စွာ curl_multi_close ၏အဓိကလုပ်ဆောင်ချက်များ ($ multi_handle) ၏အဓိကလုပ်ဆောင်ချက်များသည် -
Multi Handler ကိုပိတ်ပါ
အားလုံးနှင့်တစ်ချိန်တည်းမှာအားလုံးဆက်စပ်အရင်းအမြစ်များကိုလွှတ်ပေးရန်
အရေးကြီးသောအချက်များ
curl_multi_close () သည်သယံဇာတများသန့်ရှင်းရေးအတွက်သာတာဝန်ရှိကြောင်းနှင့် redirects ကိုအလိုအလျောက်ကိုင်တွယ်မည်မဟုတ်ပါ ။
Redirects များကိုတောင်းဆိုမှုကိုအကောင်အထည်ဖော်ရန်လုပ်ဆောင်ခြင်း (ဥပမာ - curl_multi_exec () ) မတိုင်မီ setting options)) တွင်ဖြည့်စွက်ရမည်။
ပိတ်သိမ်းပြီးနောက်သတင်းအချက်အလက်များကိုပြန်လည်ပြုပြင်ခြင်းအပါအ 0 င်တောင်းဆိုချက်ဆိုင်ရာအချက်အလက်များကိုသင်မရရှိနိုင်တော့ပါ။
ထို့ကြောင့် curl_multi_close () ကိုမခေါ်မီတောင်းဆိုမှုများအားလုံးကိုအပြည့်အဝကွပ်မျက်ခံရပြီးလိုအပ်သောတုန့်ပြန်မှုများကိုဖတ်ရှုရန်သေချာစေရမည်။
Redirect ကိုမှန်ကန်စွာလိုက်နာရန်နှင့်ပိတ်ခြင်းမပြုမီနောက်ဆုံးတုန့်ပြန်မှုကိုခံယူရန်ဆံပင်ကောက်ကောက်ရရန်သင်ဤသို့ပြုသင့်သည် -
အလိုအလျောက်နောက်ဆက်တွဲ redirect ခွင့်ပြုရန် cur ရှု options များကိုသတ်မှတ်ပါ ။
တောင်းဆိုမှုကိုလုံးဝ execute နှင့်လိုအပ်သောဒေတာအားလုံးကိုပြန်လည်ရယူပါ။
နောက်ဆုံးတွင် 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) ကိုတောင်းဆိုခြင်းနှင့်ဒေတာသည်မပျောက်ပါစေနှင့်။
ဤအသေးစိတ်အချက်အလက်များကိုကျွမ်းကျင်စေခြင်းသည်ရှုပ်ထွေးသောတစ်ပြိုင်နက်တည်းတောင်းဆိုမှုများကိုပြုလုပ်ရန်လွယ်ကူစေနိုင်သည်။