PHP get_headers: प्रॉक्सी के माध्यम से HTTP HEAD अनुरोध भेजें
get_headers को सीधे stream context दें, HEAD को जानबूझकर चुनें और तय करें कि रीडायरेक्ट का पालन करना है या नहीं।
PHP में get_headers() अपने तीसरे आर्ग्युमेंट के रूप में stream context स्वीकार करता है। PHP 8 पर, किसी HTTP URL के लिए हेडर जाँच अपना प्रॉक्सी कॉन्फ़िगरेशन ले जा सकती है:
$context = stream_context_create([
'http' => [
'proxy' => 'tcp://proxy.example.net:8080',
'request_fulluri' => true,
'method' => 'HEAD',
'follow_location' => 0,
'timeout' => 10,
],
]);
$headers = get_headers('http://example.net/file.zip', false, $context);
if ($headers === false) {
throw new RuntimeException('Header request failed');
}प्रॉक्सी HTTP stream wrapper के लिए एक TCP एंडपॉइंट है। इस सार्वजनिक HTTP जाँच के लिए इसके प्लेसहोल्डर होस्ट और पोर्ट को HTTP प्रॉक्सी सूची से किसी प्रमाणित-रहित उम्मीदवार से बदलें। request_fulluri HTTP अनुरोध पंक्ति में पूरा गंतव्य URI देता है, जैसा कि कई फ़ॉरवर्ड प्रॉक्सी अपेक्षा करते हैं। यह context इस कॉल का है; यह अन्य URL पढ़तों द्वारा उपयोग किए जाने वाले डिफ़ॉल्ट context को नहीं बदलता।
फ़ंक्शन के नाम के बावजूद, इसका डिफ़ॉल्ट अनुरोध तरीका GET है। स्पष्ट HEAD तरीका सर्वर से संबंधित प्रतिक्रिया बॉडी के बिना प्रतिक्रिया मेटाडेटा माँगता है। कोई सर्वर HEAD को अस्वीकार या भिन्न रूप से संभाल सकता है, इसलिए सफल हेडर जाँच यह प्रमाण नहीं है कि बाद का डाउनलोड सफल होगा।
यहाँ पहली प्रतिक्रिया की जाँच के लिए रीडायरेक्ट का पालन बंद है। तब Location हेडर और रीडायरेक्ट स्थिति किसी दूसरे URL को लाने के निर्देश के बजाय उपयोगी परिणाम हैं। यदि जाँच को रीडायरेक्ट का पालन करना चाहिए, तो उस नीति को जानबूझकर बदलें और अतिरिक्त प्रतिक्रिया हेडरों का हिसाब रखें।
false आर्ग्युमेंट एक इंडेक्स किया गया हेडर ऐरे रखता है। जब साहचर्य पार्सिंग अधिक उपयोगी हो तो true का उपयोग करें।