2012-03-15 72 views
5

我寫了一個類來檢測cURL是否可用,如果它使用cURL執行GET,POST,DELETE。在cURL版本中,我使用curl_getinfo($curl, CURLINFO_HTTP_CODE);來獲取HTTP代碼。如果cURL不可用,它使用fopen()讀取文件內容。如何在沒有cURL的情況下獲取HTTP頭代碼?PHP獲取http標題響應代碼沒有cURL

+0

使用'fsockopen()'。 – 2012-03-15 17:24:18

+0

如果您直接讀取HTTP響應流,則必須解析出標題和響應代碼。沒什麼大不了的,你應該能夠通過快速搜索找到示例代碼。 – 2012-03-15 17:26:56

+0

我已經在[此答案](http://stackoverflow.com/a/7566440/367456)中發佈了一些示例代碼。有關如何使用PHP執行HTTP而不使用curl函數的更一般的描述,請參見[在此答案中](http://stackoverflow.com/a/9705711/367456)。 – hakre 2012-03-15 17:36:52

回答

14

使用get_headers

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

$headers = get_headers($url); 

$code = $headers[0]; 
?> 

編輯:get_headers需要額外的呼叫,並且不適合此方案。使用$http_response_headers作爲suggested by hakre

+1

這將自行運行一個請求。 – hakre 2012-03-15 17:40:25

+0

啊,你會是對的。在這種情況下,我的答案可能不是最好的選擇。 – 2012-03-15 18:41:54

+2

從技術上講,這並沒有錯,因爲TS沒有發佈太多的代碼,所以實際上並不清楚她/他想知道什麼;) – hakre 2012-03-15 19:25:08