Byrja við úrsliti cURL, tá ein síða niðurhalað gjøgnum proxy sær út ófullfíggjað. Stutt svar, misdámdur flyting og full blokkingarsíða tørva ymiskar frágreiðingar.

Við CURLOPT_RETURNTRANSFER virknum á tíðindum uppsetta 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);

Savna hesar virðini, áðrenn tú sleppir handle. Strangi sammetingin skilur flytingarmisstak frá dámdum kroppum sum tómari strong ella “0”. HTTP-villustøður eru ikki av sær sjálvum curl_exec-misstak, so tulka eisini støðuna.

Teljarin fyri niðurhalað ber ikki høvd í sær. Upplýsta virðið kemur frá Content-Length og er -1, tá støddin er ókend. Eitt svar kann lógliga sleppa Content-Length; eitt ókent virði er ikki greining av styttari fílu.

Sjálvvirkandi innihaldsavkoding førir eina aðra skilnað við sær. Content-Length lýsir oftast tí komprimeraðu framsetingini, meðan PHP-strongurin kann hava avkodaðar bytes. At sammeta strlen($body) við tað høvdið sammetur tá ymiskar framsetingar.

cURL kann melda CURLE_PARTIAL_FILE, tá flytingin brýtur eina væntaða stødd. Varðveit ta villuna í staðin fyri at meta eina og hvørja ikki-tóma útskrift sum dám. Hinvegin kann ein dámdur flyting við einum lítlum 200-svari vera øll síðan, sum upprunin ella proxyið valdi at senda aftur.

At enda kanna tað neyðuga innihaldið. HTML, sum cURL fær, koyrir ikki JavaScript at fylla síðuna. Partar, sum kagarnir vísir, kunnu mangla í upprunaliga svarinum, hóast hvør flutt byte er komin fram.

Skyldar greinar