PHP cURL يازما چاقىرىقلىرى بىر تەرەپ قىلىنغان بايت سانىنى قايتۇرۇشى كېرەك
Proxy جاۋابىنىڭ بۆلەكلىرىنى ئىشلەتكەندە بايت سانى كېلىشىمىگە رىئايە قىلىڭ ۋە يەرلىك يېزىش مەغلۇبىيىتىنى مەغلۇپ بولغان proxy ئۇلىنىشىدىن ئايرىڭ.
Proxy سانلىق مەلۇماتنى يەتكۈزىدۇ. يازما چاقىرىقىڭىز خاتا قىممەت قايتۇرىدۇ. ئاندىن libcurl توختايدۇ، ئەتراپتىكى كود يەنە بىر «proxy download failure» نى دوكلات قىلىدۇ.
چاقىرىق ھەقىقەتەن قانچە قوبۇل قىلىنغان بايتنى بىر تەرەپ قىلغانلىقىنى دوكلات قىلىشى كېرەك. باشقا سان قايتۇرۇش مەغلۇبىيەتنى كۆرسىتىدۇ. قەستەن توسىدىغان يېزىش مەنزىلى ئۈچۈن، بىر بۆلەك مۇنداق كۆرۈنۈشى مۇمكىن:
curl_setopt($handle, CURLOPT_PROXY, 'http://proxy.example:8080');
curl_setopt($handle, CURLOPT_WRITEFUNCTION,
function ($handle, $chunk) use ($sink) {
$written = fwrite($sink, $chunk);
return $written === false ? 0 : $written;
}
);بۇ مەۋجۇت ئەپلىكەيشەننىڭ handle ۋە يېزىش مەنزىلىگە ئىگە دەپ پەرەز قىلىدۇ. مەغلۇپ بولغان ياكى قىسقا يېزىش پۈتۈن بۆلەكنىڭ ساقلانغانلىقىنى جىمجىت دەۋا قىلىشنىڭ ئورنىغا توختايدۇ. توسمايدىغان مەنزىل مۇۋاپىق بۇفېرلاش ۋە توختىتىش/داۋاملاشتۇرۇش لايىھەسىنى تەلەپ قىلىدۇ؛ كىچىك بۆلەك بۇنى بەرمەيدۇ.
كۆرسىتىلگەن ھەرپلەرنى ئەمەس، بايتلارنى ساناڭ. سانلىق مەلۇمات بىنارلىق ياكى كۆپ بايتلىق تېكىست تەرتىپىنىڭ بىر قىسمى بولۇشى مۇمكىن. بىر چاقىرىق چوقۇم بىر قۇر، بىر JSON ھۆججىتى ياكى مۇلازىمەتتىن كەلگەن بىر خەۋەر ئەمەس.
ئىنكرېمېنتال تەھلىل چاقىرىقلار ئارىسىدا ئۆز ھالىتىگە ئېھتىياجلىق. ئەكسىچە، ھەر بىر بۆلەكنى تۈگىگىچە توپلاش كىچىك چەكلىك جاۋاب ئۈچۈن توغرا بولۇشى مۇمكىن، ئەمما چوڭ ياكى ئاخىرسىز ئېقىم ئۈچۈن ئەستە ساقلاش سىياسىتى ئەمەس.
يەتكۈزۈش نەتىجىسى ۋە چاقىرىق مەغلۇبىيىتىنىڭ ئىسپاتىنى ساقلاڭ. ئىناۋەتلىك proxy يولى قۇرۇلغاندىن كېيىن يەرلىك دىسكا خاتالىقى ياكى parser توختىشى يۈز بېرىشى مۇمكىن. ئەگەر بىر prefix دىن كېيىن توختىماقچى بولسىڭىز، شۇ قەستەن چاقىرىق توختىشىنى ئايرىم بەلگىلەڭ. Proxy ئادرېسىنى ئالماشتۇرۇش سانلىق مەلۇمات قوبۇل قىلىشنى توختاتقان مەنزىلنى ئەسلىگە كەلتۈرەلمەيدۇ.