असम्पीड्रेस मैं HTTP अनुरोध करने के लिए php के file_get_contents()
फ़ंक्शन का उपयोग कर रहा हूं। बैंडविड्थ को सहेजने के लिए मैंने stream_context_create()
का उपयोग करके "Accept-Encoding: gzip"
शीर्षलेख जोड़ने का निर्णय लिया।gzip संपीड़ित http प्रतिक्रिया
जाहिर है, file_get_contents()
एक gzip एन्कोडेड स्ट्रिंग आउटपुट करता है इसलिए मैं एन्कोडेड स्ट्रिंग को डीकोड करने के लिए gzuncompress()
का उपयोग कर रहा हूं लेकिन मुझे तर्क के रूप में पारित डेटा के साथ एक त्रुटि मिलती है।
[...] PHP Warning: gzuncompress(): data error in /path/to/phpscript.php on line 26
मैं जानता हूँ कि एक और समारोह Gzipped डेटा को संपीड़ित करने में सक्षम नहीं है gzdecode()
लेकिन यह मेरी PHP संस्करण में शामिल नहीं है (शायद यह SVN पर ही उपलब्ध है)।
मुझे पता है कि सीयूआरएल फ्लाई पर किसी भी समस्या के बिना gzip स्ट्रीम डीकोड करता है लेकिन किसी ने मुझे CUrl के बजाय file_get_contents()
का उपयोग करने का सुझाव दिया।
क्या आप PHP में gzipped डेटा को डिकंप्रेस करने का कोई अन्य तरीका जानते हैं या gzuncompress()
चेतावनी आउटपुट क्यों करते हैं? यह बेतुका है कि gzuncompress()
अपेक्षा के अनुसार काम नहीं करता है।
नोट्स: समस्या निश्चित रूप से PHP के बारे में है: HTTP अनुरोध टंबलर एपीआई में किया जाता है जो एक अच्छी तरह से एन्कोडेड प्रतिक्रिया देता है।
क्या आप जानते हैं क्यों वे उपयोग करने के लिए सुझाव दिया है 'बजाय file_get_contents' सीआरआरएल का? – Jonathan
नहीं, मुझे नहीं पता, उन्होंने कहा "यह बेहतर है"। मैं cUrl पर वापस जा सकता हूं लेकिन मैं gzuncompress() मुद्दे के बारे में उत्सुक हूं। –
क्या ऐसा इसलिए है क्योंकि डेटा बेस 64 एन्कोडेड भी है? –