Waqqaf trasferiment PHP cURL wara prefiss tal-ġisem
Żomm prefiss limitat f'callback tal-kitba u għaraf biss l-iżball tal-kitba li dak il-callback jikkaġuna deliberatament.
Callback tal-kitba ta' cURL jista' jżomm prefiss limitat tal-ġisem u jwaqqaf it-trasferiment malli jintlaħaq dan il-limitu. Uża l-bandiera tiegħek stess biex tiddistingwi dak il-waqfien deliberat minn falliment tal-kitba ieħor.
Għal handle ġdid li l-URL fil-mira tiegħu diġà huwa kkonfigurat:
$limit = 32768;
$prefix = '';
$limitReached = false;
curl_setopt_array($ch, [
CURLOPT_PROXY => 'socks5h://proxy.example.net:1080',
CURLOPT_HEADER => false,
CURLOPT_WRITEFUNCTION => function ($handle, $chunk)
use (&$prefix, &$limitReached, $limit) {
$remaining = $limit - strlen($prefix);
$prefix .= substr($chunk, 0, $remaining);
if (strlen($prefix) >= $limit) {
$limitReached = true;
return 0;
}
return strlen($chunk);
},
]);
$result = curl_exec($ch);
$error = curl_errno($ch);
$expectedStop = $limitReached && $error === CURLE_WRITE_ERROR;
if ($result === false && !$expectedStop) {
throw new RuntimeException(curl_error($ch), $error);
}
L-iskema socks5h tal-URL tal-proxy titlob lill-proxy jsolvi l-isem tal-host fil-mira. Għal test permess fuq mira pubblika fuq il-handle ġdid muri, entrata mingħajr kont mis-lista tal-proxies SOCKS5 tista' tipprovdi dak l-endpoint. Il-verifika taċ-ċertifikat TLS iżżomm is-settings normali tagħha.
Ir-ritorn ta' żero għal biċċa mhux vojta jgħid lil libcurl li l-callback ma aċċettax id-data pprovduta. Dan iwaqqaf b'CURLE_WRITE_ERROR. Hawnhekk hija mistennija biss il-kombinazzjoni ta' dak l-iżball u l-bandiera limitReached tal-callback.
Tweġiba iqsar mil-limitu tintemm normalment. Fil-limitu jew fuqu, prefix iżomm l-iktar 32 KiB anki jekk l-aħħar callback jirċievi biċċa akbar. Id-daqsijiet tal-biċċiet ivarjaw; daqs tal-buffer mitlub mhuwiex wegħda ta' sejħiet ta' tul fiss.
Dan jillimita l-ġisem miżmum, mhux kull byte diġà fil-buffer jew trasferit fuq il-konnessjoni. Il-prefiss jista' jintemm ġewwa karattru multibyte, valur JSON jew element HTML, għalhekk tassumix li huwa dokument komplut li jista' jiġi analizzat.