Avatar ·

كيفية الحصول على رؤوس استجابة HTTP ونص الاستجابة في طلب واحد باستخدام PHP cURL؟

مرحباً بالجميع! أنا أكتب parser بلغة PHP باستخدام cURL. أحتاج إلى الحصول ليس فقط على محتوى الصفحة (نص الاستجابة)، ولكن أيضاً على رؤوس HTTP (مثل Content-Type، Status Code، Location عند إعادة التوجيه).

المشكلة هي أنه عندما أستخدم curl_exec()، أحصل فقط على نص الاستجابة. أما إذا قمت بتفعيل الخيار CURLOPT_HEADER => true، فإن النتيجة تظهر كل شيء معاً - الرؤوس والنص، ويجب تحليلها يدوياً باستخدام explode()، وهو أمر غير مريح للغاية.

إليك الكود الحالي الخاص بي:

$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);
$response = curl_exec($ch);
curl_close($ch);

// يجب فصلها بطريقة غير أنيقة
$header_size = curl_ge