प्रतिक्रियाको मुख्य भागबाट हेडर लाइनहरू अलग रूपमा सङ्कलन गर्नुहोस्। प्रोक्सीमार्फत हुने स्थानान्तरणले एउटै कार्यमा CONNECT, प्रमाणीकरण, रिडिरेक्ट र गन्तव्य प्रतिक्रियाका हेडर पुर्‍याउन सक्छ:

$headerLines = [];
curl_setopt($handle, CURLOPT_HEADERFUNCTION,
    function ($handle, $line) use (&$headerLines) {
        $headerLines[] = $line;
        return strlen($line);
    }
);

यो कलब्याकले कच्चा लाइन क्रम कायम राख्छ र स्वीकार गरिएका बाइटको सङ्ख्या फर्काउँछ। यसले पूरा लाइनहरू प्राप्त गर्छ; तर अझै तिनलाई प्रतिक्रियामा समूहबद्ध गर्दैन वा अन्तिम वेबसाइटका हेडर छनोट गर्दैन।

क्रमलाई ब्लकका रूपमा व्याख्या गर्नुहोस्

HTTP स्थिति लाइनले प्रतिक्रिया ब्लक सुरु गर्छ, र खाली लाइनले त्यसका हेडर अन्त्य गर्छ। अन्तिम गन्तव्य प्रतिक्रिया छनोट गर्नुअघि ती सीमाहरू सुरक्षित राख्नुहोस्। मध्यवर्ती प्रमाणीकरण प्रयास र रिडिरेक्टले प्रत्येकले ब्लक थप्न सक्छन्।

ट्रेलरहरू पछि कलब्याकमार्फत आउन सक्छन्। प्रत्येक पछिल्लो फिल्ड पहिलो प्रतिक्रियामा जोड्नुको सट्टा तिनलाई प्रारम्भिक हेडरबाट छुट्याउन पर्याप्त पार्सर स्थिति राख्नुहोस्।

टनेलको प्रमाण राख्नुहोस् वा दबाउनुहोस्

HTTPS टनेलको CONNECT स्थितिका लागि CURLINFO_HTTP_CONNECTCODE अलग पढ्नुहोस्। स्वीकार गरिएको टनेलले सफल वेबसाइट प्रतिक्रिया प्रमाणित गर्दैन।

यदि सङ्कलकलाई CONNECT हेडर आवश्यक छैन भने, CURLOPT_SUPPRESS_CONNECT_HEADERS ले कन्फिगर गरिएको हेडर आउटपुट र कलब्याक मार्गहरूमा तिनको डेलिभरी नियन्त्रण गर्छ। जोडिएका libcurl र PHP बिल्डमा समर्थन जाँच्नुहोस्। दबाउँदा सङ्कलन सरल हुन्छ, तर निदानमा सहयोग गर्न सक्ने हेडर-स्तरीय टनेल प्रमाण हट्छ।

स्थिर अफसेट वा HTML ट्याग खोजेर मुख्य भाग पुनःप्राप्त नगर्नुहोस्। हेडरको आकार फरक हुन्छ, मध्यवर्ती प्रतिक्रिया फरक हुन्छन्, र मुख्य भाग बाइनरी वा खाली हुन सक्छ। पुरानो संस्करण-विशिष्ट बग रिपोर्टले अनुमानित अफसेटलाई न्याय दिँदैन।

मुख्य भागको हेरचाह अलग राख्नुहोस्, र सङ्कलन वा पार्सिङ असफल भएमा अवलोकन गरिएका प्रतिक्रिया चरणहरूसँग स्थानान्तरण त्रुटि राख्नुहोस्। यसले अवरुद्ध कलब्याक, विकृत अनुप्रयोग डेटा र अस्वीकृत प्रोक्सी आदानप्रदान छुट्याउँछ।

सम्बन्धित लेखहरू