በፕሮክሲ የወረደ ገጽ ያልተሟላ በሚመስልበት ጊዜ ከcURL ውጤት ይጀምሩ። አጭር ምላሽ፣ ያልተሳካ ማስተላለፍ እና ሙሉ የመዝጊያ ገጽ የተለያዩ ማብራሪያዎችን ይፈልጋሉ።

በነባሩ የተዘጋጀ handle ላይ CURLOPT_RETURNTRANSFER ከነቃ፡

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

እነዚህን እሴቶች handle ከመልቀቅዎ በፊት ይሰብስቡ። ጥብቅ ንጽጽሩ የማስተላለፍ ውድቀትን ከተሳካ አካል ማለትም ከባዶ ሕብረቁምፊ ወይም ከ“0” ይለያል። የHTTP ስህተት ሁኔታዎች በራስ-ሰር የcurl_exec ውድቀቶች አይደሉም፣ ስለዚህ ሁኔታውንም ይተርጉሙ።

የተወረደው ቆጣሪ ራስጌዎችን አያካትትም። የተገለጸው እሴት ከContent-Length የሚመጣ ሲሆን መጠኑ የማይታወቅ ሲሆን -1 ይሆናል። ምላሽ Content-Length ን በሕጋዊ መንገድ መተው ይችላል፤ የማይታወቅ እሴት የተቆረጠ ፋይል ምርመራ አይደለም።

ራስ-ሰር የይዘት ዲኮዲንግ ሌላ ልዩነት ያስገባል። Content-Length በተለምዶ የተጨመቀውን ውክልና ይገልጻል፣ የPHP ሕብረቁምፊ ግን የተከፈቱ ባይቶችን ሊይዝ ይችላል። strlen($body) ከዚያ ራስጌ ጋር ማወዳደር የተለያዩ ውክልናዎችን ማወዳደር ነው።

ማስተላለፉ የሚጠበቀውን መጠን ሲጥስ cURL CURLE_PARTIAL_FILE ሪፖርት ማድረግ ይችላል። ማንኛውንም ባዶ ያልሆነ ውጤት እንደ ስኬት ከመቁጠር ይልቅ ያንን ስህተት ያስቀምጡ። በተቃራኒው፣ አነስተኛ 200 ምላሽ ያለው የተሳካ ማስተላለፍ መነሻው ወይም ፕሮክሲው ለመመለስ የመረጠው ሙሉ ገጽ ሊሆን ይችላል።

በመጨረሻ የሚያስፈልገውን ይዘት ያረጋግጡ። በcURL የተጫነ HTML ገጹን ለመሙላት JavaScript አያስፈጽምም። በአሳሹ የሚታዩ ክፍሎች ቢጠፉ፣ ሁሉም የተላለፈ ባይት ቢደርስም በመጀመሪያው ምላሽ ውስጥ ላይኖሩ ይችላሉ።

ተዛማጅ ጽሑፎች