ப்ராக்ஸி வழியாகப் பதிவிறக்கிய பக்கம் முழுமையில்லாமல் தோன்றும்போது 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 ஐ இயக்காது. அனுப்பப்பட்ட ஒவ்வொரு பைட்டும் வந்தாலும் உலாவி காட்டும் பகுதிகள் அசல் பதிலில் இல்லாமல் இருக்கலாம்.

தொடர்புடைய கட்டுரைகள்