ପ୍ରକ୍ସି ମାଧ୍ୟମରେ ଡାଉନଲୋଡ୍ ହୋଇଥିବା ପୃଷ୍ଠା ଅସମ୍ପୂର୍ଣ୍ଣ ଦେଖାଗଲେ 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 ଚଲାଏ ନାହିଁ। ବ୍ରାଉଜର ଦେଖାଉଥିବା ଅଂଶଗୁଡ଼ିକ ପଠାଯାଇଥିବା ପ୍ରତ୍ୟେକ ବାଇଟ ପହଞ୍ଚିବା ସତ୍ତ୍ୱେ ମୂଳ ପ୍ରତିକ୍ରିୟାରେ ନଥାଇପାରେ।

ସମ୍ପର୍କିତ ପ୍ରବନ୍ଧ