亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php怎么這段字符串分割到數組

php怎么這段字符串分割到數組

PHP
牛魔王的故事 2019-03-16 05:44:25
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> 我需要分解成array("Server" => "NWSs", "Date" => "Sat, 02 Sep 2017 05:31:58 GMT"); 這樣的!
查看完整描述

3 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

$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];
}

純手打,未驗證。要是有錯可以稍微改一下。大致上是這樣。

查看完整回答
反對 回復 2019-03-18
?
小唯快跑啊

TA貢獻1863條經驗 獲得超2個贊

別忘了 PHP 是一個合格的腳本語言,這些基本的功能實現起來是非常簡單。今日得閑,幫你嘗試一番,采用最基本的數組和字符串之間的轉換和拼接,過程如下:

<?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> 為界初步分割為數組
$str = explode('<br>', $raw);

// 去除第一個無用元素 和 最后兩個空元素
array_shift($str);
array_pop($str);
array_pop($str);

// 創建新數組用于儲存拼接內容
$result = [];

foreach ($str as $key => $value) {
    $single = explode(':', $value);
    
    // 以下始拼接,防止被時間那組數據坑了
    // 獲取新數組的關聯
    $result_key = $single[0];
    // 去除關聯,將剩余元素使用:接成為字符串
    array_shift($single);
    $result_value = implode(':', $single);
    // 儲存處理好的內容
    $result = array_merge($result, ["$result_key" => "$result_value"]);
}

//輸出結果
print_r($result);
?>

在 PHP 7.1.4 中,輸出結果如下,基本滿足題主的需求,并且避開了時間的坑:

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] =>  *
)

綜上所述,題目并不困難,只要肯思考肯定可以解決,題主可以封裝為一個函數直接使用即可。唯一的小小小坑出現在時間分割處,注意克服即可。

查看完整回答
反對 回復 2019-03-18
?
牧羊人nacy

TA貢獻1862條經驗 獲得超7個贊

先根據<'br'>分割出數組,array('HTTP/1.1 200 OK','Server: NWSs','Date: Sat, 02 Sep 2017 05:31:58 GMT','Content-Type: text/html; charset=utf-8',......),然后再做處理,拿出你想要的內容

查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關注
  • 437 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號