PHP cURL idazketa callback-ek kudeatutako byte kopurua itzuli behar dute
Errespetatu byte-kopuruaren kontratua proxyaren erantzun zatiak kontsumitzean, eta bereizi tokiko idazketa-hutsegitea proxy konexio hutsegite batetik.
Proxyak datuak ematen ditu. Zure idazketa callback-ak balio okerra itzultzen du. Orduan libcurl-ek abortatzen du, eta inguruko kodeak beste «proxy deskarga hutsegite» bat jakinarazten du.
Callback-ak jakinarazi behar du zenbat jasotako byte kudeatu dituen benetan. Beste kopuru bat itzultzeak hutsegitea adierazten du. Nahita blokeatzen duen idazketa-hargune baterako, zati bat horrela izan daiteke:
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;
}
);Honek suposatzen du lehendik dagoen aplikazioak handle-a eta idazketa-hargunea dituela. Idazketa hutsak edo laburrak abortatzen du, zati osoa gorde zela isilpean esan beharrean. Blokeatzen ez duen harguneak buffer eta pausatu/berrekin diseinu egokia behar du; zati txikiak ez du horrelakorik ematen.
Zenba itzazu byteak, ez bistaratutako karaktereak. Datuak bitarrak izan daitezke edo byte anitzeko testu-sekuentzia baten parte. Deialdi bat ez da derrigorrez lerro bat, JSON dokumentu bat edo zerbitzuaren mezu bat.
Analisi inkrementalak bere egoera propioa behar du deialdien artean. Alderantziz, zati bakoitza amaitu arte metatzea erantzun txiki mugatu baterako zuzena izan daiteke, baina ez da memoria-politika fluxu handi edo amaigabe baterako.
Gorde transferentziaren emaitza eta callback-aren hutsegitearen frogak. Tokiko disko-errore bat edo analizatzailearen abortua gerta daiteke proxy bide baliozkoa ezarri ondoren. Prefixu baten ondoren gelditu nahi baduzu, markatu nahita egindako callback geldialdi hori bereizita. Proxy helbidea ordezkatzeak ezin du datuak onartzetik utzi duen hargune bat konpondu.