3 回答

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超7個(gè)贊
$header = 'HTTP/1.1 200 OK<br>Server: NWSs<br>Date: Sat, 02 Sep 2017 05:31:58 GMT<br>Content-Type: text/html; charset=utf-8<br>Content-Length: 4955<br>Connection: keep-alive<br>Cache-Control: max-age=86400<br>Expires: Sun, 03 Sep 2017 05:31:58 GMT<br>Last-Modified: Thu, 31 Aug 2017 08:29:39 GMT<br>Content-Encoding: gzip<br>X-NWS-LOG-UUID: b5d7cf9d-5d88-44ba-a6d0-411024e5ffc1<br>X-Cache-Lookup: Hit From MemCache Gz<br>Access-Control-Allow-Origin: *<br><br>';
$header = explode('<br>', $header);
$method = array_shift($header);
$headers = [];
foreach ($header as $item) {
preg_match_all("/(.*?): (.*)/", $item, $arr);
if (!$arr[1][0] || !$arr[2][0]) {
continue;
}
$headers[$arr[1][0]] = $arr[2][0];
}
純手打,未驗(yàn)證。要是有錯(cuò)可以稍微改一下。大致上是這樣。

TA貢獻(xiàn)1863條經(jīng)驗(yàn) 獲得超2個(gè)贊
別忘了 PHP 是一個(gè)合格的腳本語(yǔ)言,這些基本的功能實(shí)現(xiàn)起來(lái)是非常簡(jiǎn)單。今日得閑,幫你嘗試一番,采用最基本的數(shù)組和字符串之間的轉(zhuǎn)換和拼接,過(guò)程如下:
<?php
$raw = 'HTTP/1.1 200 OK<br>Server: NWSs<br>Date: Sat, 02 Sep 2017 05:31:58 GMT<br>Content-Type: text/html; charset=utf-8<br>Content-Length: 4955<br>Connection: keep-alive<br>Cache-Control: max-age=86400<br>Expires: Sun, 03 Sep 2017 05:31:58 GMT<br>Last-Modified: Thu, 31 Aug 2017 08:29:39 GMT<br>Content-Encoding: gzip<br>X-NWS-LOG-UUID: b5d7cf9d-5d88-44ba-a6d0-411024e5ffc1<br>X-Cache-Lookup: Hit From MemCache Gz<br>Access-Control-Allow-Origin: *<br><br>';
// 以 <br> 為界初步分割為數(shù)組
$str = explode('<br>', $raw);
// 去除第一個(gè)無(wú)用元素 和 最后兩個(gè)空元素
array_shift($str);
array_pop($str);
array_pop($str);
// 創(chuàng)建新數(shù)組用于儲(chǔ)存拼接內(nèi)容
$result = [];
foreach ($str as $key => $value) {
$single = explode(':', $value);
// 以下始拼接,防止被時(shí)間那組數(shù)據(jù)坑了
// 獲取新數(shù)組的關(guān)聯(lián)
$result_key = $single[0];
// 去除關(guān)聯(lián),將剩余元素使用:接成為字符串
array_shift($single);
$result_value = implode(':', $single);
// 儲(chǔ)存處理好的內(nèi)容
$result = array_merge($result, ["$result_key" => "$result_value"]);
}
//輸出結(jié)果
print_r($result);
?>
在 PHP 7.1.4 中,輸出結(jié)果如下,基本滿足題主的需求,并且避開(kāi)了時(shí)間的坑:
Array
(
[Server] => NWSs
[Date] => Sat, 02 Sep 2017 05:31:58 GMT
[Content-Type] => text/html; charset=utf-8
[Content-Length] => 4955
[Connection] => keep-alive
[Cache-Control] => max-age=86400
[Expires] => Sun, 03 Sep 2017 05:31:58 GMT
[Last-Modified] => Thu, 31 Aug 2017 08:29:39 GMT
[Content-Encoding] => gzip
[X-NWS-LOG-UUID] => b5d7cf9d-5d88-44ba-a6d0-411024e5ffc1
[X-Cache-Lookup] => Hit From MemCache Gz
[Access-Control-Allow-Origin] => *
)
綜上所述,題目并不困難,只要肯思考肯定可以解決,題主可以封裝為一個(gè)函數(shù)直接使用即可。唯一的小小小坑出現(xiàn)在時(shí)間分割處,注意克服即可。

TA貢獻(xiàn)1862條經(jīng)驗(yàn) 獲得超7個(gè)贊
先根據(jù)<'br'>分割出數(shù)組,array('HTTP/1.1 200 OK','Server: NWSs','Date: Sat, 02 Sep 2017 05:31:58 GMT','Content-Type: text/html; charset=utf-8',......),然后再做處理,拿出你想要的內(nèi)容
- 3 回答
- 0 關(guān)注
- 434 瀏覽
添加回答
舉報(bào)