Ingabe impendulo ye-PHP cURL yanqanyulwa?
Hlola umphumela wokudlulisa we-cURL, isimo sempendulo kanye nokumelelwa komzimba ngaphambi kokuqhathanisa usayizi olandiwe ne-Content-Length.
Qala ngomphumela we-cURL lapho ikhasi elilandiwe nge-proxy libonakala lingaphelele. Impendulo emfushane, ukudlulisa okuhlulekile kanye nekhasi elivimbayo eliphelele kudinga izincazelo ezihlukene.
Uma i-CURLOPT_RETURNTRANSFER ivuliwe ku-handle esivele ilungisiwe:
$body = curl_exec($ch);
if ($body === false) {
throw new RuntimeException(curl_error($ch), curl_errno($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$downloaded = curl_getinfo($ch, CURLINFO_SIZE_DOWNLOAD_T);
$declared = curl_getinfo($ch, CURLINFO_CONTENT_LENGTH_DOWNLOAD_T);
Qoqa lawa manani ngaphambi kokukhulula i-handle. Ukuqhathanisa okuqinile kwehlukanisa ukuhluleka kokudlulisa nomzimba ophumelele njengochungechunge olungenalutho noma “0”. Izimo zamaphutha e-HTTP azikona ukuhluleka kwe-curl_exec ngokuzenzakalela, ngakho futhi humusha isimo.
Isibali sokulanda asifaki ama-header. Inani elimemezelwe livela ku-Content-Length futhi liba ngu -1 lapho usayizi ungaziwa. Impendulo ingashiya ngokusemthethweni i-Content-Length; inani elingaziwa akusona isiqondiso sefayela elinqanyuliwe.
Ukuhumusha okuzenzakalelayo kwokuqukethwe kuletha omunye umehluko. I-Content-Length ngokuvamile ichaza ukumelelwa okucindezelwe, kuyilapho uchungechunge lwe-PHP lungaqukatha amabhayithi akhishiwe. Ukuqhathanisa i-strlen($body) nale header kuqhathanisa ukumelelwa okuhlukene.
I-cURL ingabika i-CURLE_PARTIAL_FILE lapho ukudlulisa kwephula usayizi olindelekile. Gcina lelo phutha esikhundleni sokuthatha noma yikuphi okuphumayo okungenalutho njengempumelelo. Ngakolunye uhlangothi, ukudlulisa okuphumelele okunempendulo encane engu-200 kungaba yikhasi lonke inkomba noma i-proxy ekhethe ukuyibuyisela.
Ekugcineni hlola okuqukethwe okudingekayo. I-HTML etholwa yi-cURL ayisebenzisi i-JavaScript ukugcwalisa ikhasi. Izingxenye eziboniswa isiphequluli zingase zingabikho empendulweni yokuqala ngisho noma wonke amabhayithi adlulisiwe efikile.