2012-10-24 89 views
-1
(string) HTTP/1.1 200 OK 
Content-Language: en 
Content-Type: application/json; charset=utf-8 
Date: Wed, 24 Oct 2012 21:38:50 GMT 
Server: nginx 
Vary: Accept-Language, Cookie, Accept-Encoding 
X-Ratelimit-Limit: 5000 
X-Ratelimit-Remaining: 4976 
transfer-encoding: chunked 
Connection: keep-alive 

從上面的頭我想要的值爲X-Ratelimit-剩餘。我如何將它存儲在php中的變量中。HTTP頭,獲取特定值

+0

用php curl和http-headers重新簽名 – gmo

+2

您接受的解決方案似乎比使用'get_headers()'更復雜。爲什麼更好? – Barmar

+0

請參閱http://tools.ietf.org/html/rfc2616#section-6和http://php.net/http_parse_headers – hakre

回答

1

使用get_headers()Documentation)從頭中檢索任何值。

+0

'get_headers()'從URL執行GET請求並返回響應頭,它不會對字符串進行操作。 – Barmar

+0

它返回一個數組。然後你可以從數組中獲取信息。另外,@Znarkus沒有說明他已經擁有這些信息。 – justderb

+0

不知道'get_headers()'。實際上,看起來像是比我的更好的解決方案,如果我不丟失東西 – Znarkus

0

這是使用捲曲的替代解決方案:

$ch = curl_init('http://example.com/'); 
curl_setopt_array($ch, array(
    CURLOPT_HEADER => true, 
    CURLOPT_NOBODY => true, 
    CURLOPT_RETURNTRANSFER => true 
)); 

$headers = curl_exec($ch); 
preg_match('/^X-Ratelimit-Remaining: (.+)$/m', $headers, $m); 
list(, $remaining) = $m; 

echo '$remaining: ' . $remaining; 
+0

這工作很好...正是我需要的。謝謝 – user1535672

0

作爲第一應答從@justderb已經說過,使用get_headers() PHP函數。

如果你有一個帶有標題信息的字符串。你可以轉換成一個數組,然後無論如何。

例子:

$url = "http://www.your-web.com"; 
$xr = get_headers($url, 1); 
echo 'The X-Ratelimit-Remaining value is: '.$xr['X-Ratelimit-Remaining']; 

或者:

$url = Array(
    "0" => "HTTP/1.1 200 OK", 
    "Date" => "Sat, 29 May 2004 12:28:14 GMT", 
    "Server" => "Apache/1.3.27 (Unix) (Red-Hat/Linux)", 
    "X-Ratelimit-Remaining" => "4976" 
); 
echo 'The X-Ratelimit-Remaining value is: '.$url['X-Ratelimit-Remaining']; 

希望它能幫助,

好運!