Begjin mei it resultaat fan cURL as in side dy’t fia in proxy download is ûnfolslein liket. In koart antwurd, in mislearre oerdracht en in folsleine blokkadeside freegje ferskate ferklearrings.

Mei CURLOPT_RETURNTRANSFER oan op de besteande konfigurearre handle:

$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);

Sammelje dizze wearden foardat jo de handle frijlitte. De strikte fergeliking ûnderskiedt in oerdrachtsflater fan slagge lichems lykas in lege tekenrige of “0”. HTTP-foutstatussen binne net automatysk curl_exec-flaters, dus ynterpretearje ek de status.

De teller fan downloaden útslút headers. De ferklearre wearde komt fan Content-Length en is -1 as dy grutte ûnbekend is. In antwurd mei Content-Length legitime weilitte; in ûnbekende wearde is gjin diagnoaze fan in ôfknipt bestân.

Automatyske ynhâlddekodearring foeget noch in ûnderskie ta. Content-Length beskreaut meast de komprimearre foarstelling, wylst de PHP-tekenrige dekomprimearre bytes befetsje kin. strlen($body) mei dy header fergelykje fergeliket dan ferskate foarstellings.

cURL kin CURLE_PARTIAL_FILE melde as de oerdracht in ferwachte grutte oertrêdt. Bewarje dy flater ynstee fan alle net-lege útfier as sukses te beskôgjen. Oarsom kin in slagge oerdracht mei in lyts 200-antwurd de hiele side wêze dy’t de boarne of de proxy keas om werom te jaan.

As lêste kontrolearje de nedige ynhâld. HTML dat cURL hellet fiert gjin JavaScript út om de side te foljen. Dielen dy’t de browser sjen lit, kinne yn it oarspronklike antwurd ûntbrekke sels as elke ferstjoerde byte oankaam.

Relatearre artikelen