2012-03-15 19 views
5

के बिना http शीर्षलेख प्रतिक्रिया कोड प्राप्त हुआ है, मैंने एक कक्षा लिखी है जो पता लगाती है कि कर्ल उपलब्ध है, अगर यह GET, POST, कर्ल का उपयोग करके हटा देता है। कर्ल संस्करण में मैं HTTP कोड प्राप्त करने के लिए curl_getinfo($curl, CURLINFO_HTTP_CODE); का उपयोग करता हूं। यदि curl उपलब्ध नहीं है तो यह फ़ाइल सामग्री को पढ़ने के लिए fopen() का उपयोग करता है। मैं curl के बिना HTTP हेडर कोड कैसे प्राप्त करूं?PHP को कर्ल

+0

'fsockopen()' का उपयोग करें। –

+0

यदि आप सीधे HTTP प्रतिक्रिया स्ट्रीम पढ़ रहे हैं तो आपको हेडर और प्रतिक्रिया कोड को पार्स करना होगा। एक बड़ा सौदा नहीं है कि आपको त्वरित खोज के साथ नमूना कोड ढूंढने में सक्षम होना चाहिए। –

+0

मैंने कुछ उदाहरण कोड [इस उत्तर] में पोस्ट किया है (http://stackoverflow.com/a/7566440/367456)। अधिक सामान्य विवरण PHP के साथ HTTP कैसे कर सकते हैं w/o कर्ल फ़ंक्शंस को रेखांकित किया गया है [इस उत्तर में] (http://stackoverflow.com/a/9705711/367456)। – hakre

उत्तर

6

जब भी आप कुछ HTTP इंटरैक्शन करते हैं, तो उसी चरम पर विशेष चर $http_response_header में सभी शीर्षलेख (स्थिति रेखा शीर्षलेख) शामिल होंगे जो अंतिम HTTP इंटरैक्शन से होते हैं।

here for an example how to parse it and obtain the status code देखें।

14

उपयोग get_headers:

<?php 
$url = "http://www.example.com/"; 

$headers = get_headers($url); 

$code = $headers[0]; 
?> 

संपादित करें:get_headers एक अतिरिक्त कॉल की आवश्यकता है, और इस स्थिति के लिए उपयुक्त नहीं है। $http_response_headerssuggested by hakre के रूप में उपयोग करें।

+1

यह अपने आप पर एक अनुरोध चलाएगा। – hakre

+0

आह, आप सही होंगे। मेरा जवाब शायद इस मामले में सबसे अच्छा विकल्प नहीं है। –

+2

अच्छी तरह से तकनीकी रूप से यह गलत नहीं है, क्योंकि टीएस ने अधिक कोड नहीं पोस्ट किया है, इसलिए यह वास्तव में स्पष्ट नहीं है कि वह वास्तव में क्या जानना चाहता था;) – hakre