ကွန်ယက်တောင်းဆိုမှုများပြုလုပ်ရန် PHP ၏ Curl Library ကိုအသုံးပြုသောအခါ curl_share_init () function သည် shared function ကိုအစပြုရန်အသုံးပြုသည်။ သို့သော် developer များစွာသည် သယံဇာတ ပ conflicts ိပက်ခများ,
ဤဆောင်းပါးသည်သင်အား debugging tools များ , curl_error () နှင့် curl_errno () မှတဆင့် curl_share_INIT မှဖြစ်ပေါ်လာသောပျက်ကွက်မှုပြ problems နာများကိုဖြေရှင်းရန်နှင့်မည်သို့ဖြေရှင်းရန်မည်သို့ဖြေရှင်းရမည်ကိုနားလည်ရန်သင့်ကို
curl_share_init () ကိုမျှဝေရန်အရင်းအမြစ်အမျိုးအစားကိုသတ်မှတ်ရန် curl_share_setopt () နှင့် တွဲဖက်. များသောအားဖြင့် curl_share_setopt () ကို အသုံးပြုလေ့ရှိသည်။ နောက်ဆုံးအနေဖြင့်လက်ကိုင်ကိုထုတ်လွှတ်ရန် Curl_Share_Close () ကို သုံးရန်လိုအပ်သည်။
ရိုးရှင်းသောဥပမာ -
$sh = curl_share_init();
curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
သို့သော်လည်း, မမှန်မကန်သို့မဟုတ်မှားယွင်းစွာအသုံးပြုပါကအချို့သောဝေမျှခြင်းလုပ်ငန်းများသည်ပျက်ကွက်ခြင်း,
ပျက်ကွက်မှု၏အကြောင်းရင်းများတွင် -
ကွဲပြားခြားနားသောချည်အတွက်တူညီသောဆံပင်ကောက်ကောက်လက်ကိုင်ကိုသုံးပါ။
ထပ်ခါတလဲလဲ shared လက်ကိုင်သို့မဟုတ်ကိုင်တွယ်ပြန်လုပ်ပါ။
Set Sharing အမျိုးအစားများ (ဥပမာ cookie, DNS) ကိုအောက်ခြေတွင်မထောက်ပံ့ပါ။
libcurl ဗားရှင်းသဟဇာတဖြစ်ပါတယ်။
သတ်သတ်မှတ်မှတ်အမှားများကိုရှာဖွေရန်ကျွန်ုပ်တို့သည် curl_error () နှင့် curl_errno () ကို သုံးရန်လိုအပ်သည်။
ဤရွေ့ကားလုပ်ဆောင်ချက်နှစ်ခုသည်အမှားပြုတ်ခြင်းအမှားအယွင်းများဖြစ်သည်။
curl_error ($ ch) သည် အမှားအယွင်း (string form) သည်နောက်ဆုံးဆံပင်ကောက်ကောက်လုပ်ငန်း၏အမှားအယွင်း (string form) ကိုပြန်ပို့သည်။
Curl_errno ($ ch) သည် အမှားကုဒ် (ကိန်းဂဏန်းပုံစံ) ကိုနောက်ဆုံးဆံပင်ကောက်ကောက်ဖြင့်ပြန်လည်ရောက်ရှိစေသည်။
သူတို့ကိုများသောအားဖြင့်အတူတကွအသုံးပြုကြသည်။
$ch = curl_init('https://m66.net/api/test');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if ($result === false) {
echo 'cURL Error Code: ' . curl_errno($ch) . "\n";
echo 'cURL Error Message: ' . curl_error($ch) . "\n";
} else {
echo 'Request successful: ' . $result;
}
curl_close($ch);
shared လက်ကိုင်များအတွက်:
$sh = curl_share_init();
if ($sh === false) {
die("Failed to initialize curl share handle.\n");
}
$setopt_result = curl_share_setopt($sh, CURLSHOPT_SHARE, CURL_LOCK_DATA_COOKIE);
if ($setopt_result === false) {
echo "Failed to set share option.\n";
}
$ch = curl_init('https://m66.net/api/test');
curl_setopt($ch, CURLOPT_SHARE, $sh);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if ($result === false) {
echo 'cURL Error Code: ' . curl_errno($ch) . "\n";
echo 'cURL Error Message: ' . curl_error($ch) . "\n";
} else {
echo 'Request successful: ' . $result;
}
curl_close($ch);
curl_share_close($sh);
အမှားကုဒ် | ဘုံအကြောင်းပြချက် |
---|---|
1 | curle_unsupported_protocol |
သုံး | curle_url_malformat |
5 | curle_coundnt_resolve_proxy |
6 | curle_coundnt_resolve_host |
7 | curle_coundnt_connect |
နှစ်ဆယ့်သုံး | curle_write_error |
43 | curle_bad_function_arg ဂိုးသမား |
81 | curle_share_in_use |
Curle_share_in_use သည်လက်ရှိမျှဝေထားသောလက်ကိုင်ကိုအခြားလက်ကိုင်တစ်ခုကအသုံးပြုသည်။ ကုဒ်ယုတ္တိဗေဒကိုစစ်ဆေးရန်လိုအပ်သည်။
1 ?? Libcul ဗားရှင်းသည်သင် curl_version () ကို အသုံးပြု. လက်ရှိတွင်ထောက်ပံ့ထားသောအင်္ဂါရပ်များကိုစစ်ဆေးရန် curl_version () ကို သုံးနိုင်သည်ကိုအတည်ပြုပါ။
2 ?? ပြ the နာ၏အတိုင်းအတာကိုခွဲခြားရန်၎င်းကိုစမ်းသပ်ရန် curl လက်ကိုင်တစ်ခုတည်းကိုပထမ ဦး စွာအသုံးပြုပါ, ထို့နောက်မျှဝေခြင်းကြောင့်ဖြစ်ရတဲ့ပြ a နာတစ်ခုဖြစ်ကြောင်းအတည်ပြုရန် shared hands ကိုမိတ်ဆက်ပေးပါ။
3 ?? Curl_ERRORR () နှင့် curl_errno () ကို သုံးပါ။ အသေးစိတ်အမှားများကိုလက်ခံရရှိရန် curl_exec () ပြီးနောက်ချက်ချင်းစစ်ဆေးရမည်။
4 ?? curlopt_verbose မှတစ်ဆင့်အသေးစိတ်မှတ်တမ်းများကိုဖွင့်ပါ။
curl_setopt($ch, CURLOPT_VERBOSE, true);
5 ?? ချည်မျှင်ဘေးကင်းလုံခြုံမှုကိုစစ်ဆေးပါ။ Libcurl သည်ချည်မျှင်မ 0 င်ပါကချည်မျှင်မျိုးစုံဖြင့်မတူပါ။