PHP file_get_contents के साथ प्रॉक्सी से HTTP URL प्राप्त करें
फ़ॉरवर्ड प्रॉक्सी के लिए PHP के HTTP स्ट्रीम रैपर को कॉन्फ़िगर करें, जिसमें अनुरोध की फ़ॉर्मैटिंग और स्ट्रीम कॉन्टेक्स्ट की सीमाएँ शामिल हैं।
PHP cURL के बिना सामान्य HTTP अनुरोध के लिए, HTTP स्ट्रीम रैपर को प्रॉक्सी कॉन्टेक्स्ट दें:
$context = stream_context_create([
'http' => [
'proxy' => 'tcp://203.0.113.10:8080',
'request_fulluri' => true,
'timeout' => 10,
],
]);
$body = file_get_contents('http://example.com/', false, $context);
डॉक्यूमेंटेशन एंडपॉइंट को अपने HTTP प्रॉक्सी या HTTP प्रॉक्सी सूची से किसी उम्मीदवार से बदलें। HTTP कॉन्टेक्स्ट इंटरफ़ेस proxy के लिए TCP पता अपेक्षित करता है। request_fulluri=true पूरे गंतव्य URI को अनुरोध पंक्ति में रखता है, जैसा कि कई फ़ॉरवर्ड प्रॉक्सी माँगते हैं। टाइमआउट उस रैपर के नियमों के अनुसार स्ट्रीम संक्रिया को सीमित करता है।
बॉडी पार्स करने से पहले लौटाया गया मान और चेतावनी जाँचें; विफल पढ़ाई और खाली सफल प्रतिक्रिया के लिए अलग व्यवहार आवश्यक है। निदान इस एक HTTP गंतव्य और सीमित अनुरोध से शुरू करें। HTTPS टनलिंग और TLS व्यवहार जोड़ता है जिसे वास्तविक रैपर/PHP संस्करण के लिए जाँचना होगा; यह उदाहरण उन क्षमताओं को सिद्ध नहीं करता।
इस कॉल पर कॉन्टेक्स्ट देने से मार्ग दिखाई देता रहता है और असंबंधित URL पढ़ाई बदलने से बचा जाता है। साझा डिफ़ॉल्ट कॉन्टेक्स्ट केवल तब उपयुक्त है जब ऐप्लिकेशन जानबूझकर वह नीति चाहता हो; लाइब्रेरी को उसके व्यापक दायरे का ध्यान रखना चाहिए।
यह PHP स्ट्रीम कॉन्फ़िगर करता है, स्वतंत्र रूप से बनाया गया cURL हैंडल नहीं, ब्राउज़र या कोई अन्य प्रक्रिया नहीं। किसी पैकेज से इस कॉन्टेक्स्ट के उपयोग की अपेक्षा करने से पहले उसका वास्तविक HTTP ट्रांसपोर्ट पहचानें।