প্ৰক্সিৰ জৰিয়তে ডাউনলোড কৰা পৃষ্ঠা অসম্পূৰ্ণ যেন লাগিলে 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 এৰি দিয়াৰ আগতে এই মানবোৰ সংগ্ৰহ কৰক। কঠোৰ তুলনাই স্থানান্তৰৰ বিফলতাক সফল body যেনে খালী string বা “0” ৰ পৰা পৃথক কৰে। HTTP ত্ৰুটি স্থিতিবোৰ স্বয়ংক্ৰিয়ভাৱে curl_exec ৰ বিফলতা নহয়, গতিকে স্থিতিও ব্যাখ্যা কৰক।

ডাউনলোড কৰা কাউণ্টাৰত header অন্তৰ্ভুক্ত নহয়। ঘোষিত মান Content-Length ৰ পৰা আহে আৰু আকাৰ অজ্ঞাত হ’লে -1 হয়। প্ৰতিক্ৰিয়াই Content-Length বৈধভাৱে বাদ দিব পাৰে; অজ্ঞাত মান কটা ফাইলৰ ৰোগ নিৰ্ণয় নহয়।

স্বয়ংক্ৰিয় content decoding এ আন এটা পাৰ্থক্য আনে। Content-Length সাধাৰণতে সংকুচিত প্ৰতিনিধিত্ব বৰ্ণনা কৰে, কিন্তু PHP string ত ডিকম্প্ৰেছ কৰা byte থাকিব পাৰে। strlen($body) ক সেই header ৰ সৈতে তুলনা কৰিলে বেলেগ বেলেগ প্ৰতিনিধিত্ব তুলনা কৰা হয়।

স্থানান্তৰে আশা কৰা আকাৰ উলংঘা কৰিলে cURL এ CURLE_PARTIAL_FILE ৰিপৰ্ট কৰিব পাৰে। যিকোনো অখালী আউটপুটক সফলতা বুলি ধৰাৰ পৰিৱৰ্তে সেই ত্ৰুটি সংৰক্ষণ কৰক। বিপৰীতে, সৰু 200 প্ৰতিক্ৰিয়াৰ সৈতে সফল স্থানান্তৰ মূল বা প্ৰক্সিয়ে ঘূৰাই দিবলৈ বাছনি কৰা সম্পূৰ্ণ পৃষ্ঠা হ’ব পাৰে।

শেষত প্ৰয়োজনীয় সমল পৰীক্ষা কৰক। cURL এ অনা HTML এ পৃষ্ঠা ভৰাবলৈ JavaScript চলায় নহয়। ব্ৰাউজাৰে দেখুওৱা অনুপস্থিত অংশসমূহ প্ৰেৰিত প্ৰতিটো byte আহি পোৱাৰ পিছাও মূল প্ৰতিক্ৰিয়াত নাথাকিব পাৰে।

সম্পৰ্কিত প্ৰবন্ধ