解析php头和体的最简单方法是什么

解析php头和体的最简单方法是什么,php,regex,Php,Regex,嗨,伙计们,下面是我从卷曲反应中得到的信息 HTTP/1.1 200 OK X-Account-Object-Count: 4 X-Account-Bytes-Used: 3072798 X-Account-Container-Count: 3 Accept-Ranges: bytes Content-Length: 15 Content-Type: text/plain; charset=utf-8 Date: Thu, 12 Jan 2012 04:07:33 GMT a1 abc tes

嗨,伙计们,下面是我从卷曲反应中得到的信息

HTTP/1.1 200 OK
X-Account-Object-Count: 4
X-Account-Bytes-Used: 3072798
X-Account-Container-Count: 3
Accept-Ranges: bytes
Content-Length: 15
Content-Type: text/plain; charset=utf-8
Date: Thu, 12 Jan 2012 04:07:33 GMT

a1
abc
testing
我发现了一个解析头的好函数,我可以抓取头中的键值对,这不是问题,我的问题是如何抓取主体中的名称 a1 abc 测试

我认为正则表达式可以做得最好,但不知道正则表达式是否是最好的方法,或者是否有任何其他函数可以返回标题separate和body separate

感谢您的帮助。谢谢

更新 现在我得到的答复如下:

HTTP/1.1 200 OK
X-Account-Object-Count: 4
X-Account-Bytes-Used: 3072798
X-Account-Container-Count: 3
Accept-Ranges: bytes
Content-Length: 115
Content-Type: application/json; charset=utf-8
Date: Thu, 12 Jan 2012 04:47:36 GMT

[{"name":"a1","count":0,"bytes":0},{"name":"abc","count":0,"bytes":0},{"name":"testing","count":4,"bytes":3072798}]

因此,json中的名称似乎应该简单到:

list($headers, $body) = explode("\n\n", $response);
$bodyValues = explode("\n", $body);

HTTP头与正文之间总是用一个空行隔开。这是HTTP规范的一部分,应该始终是真的(如果不是,那么您可以说它不是HTTP)。如何使用phpdepends在解析响应时检测空行。如果你是一行一行的,那么当你碰到一个空行时,你已经完成了标题,并且已经到达了主体。否则,查找
\n\n
并将其拆分/分离。重新更新:因此,
json\u解码
正文。$headers和$body打印值1,其他任何内容。行尾可能取决于您的操作系统。请尝试
\r\n
而不是
\n
。看见否则,你说的“印花1”到底是什么意思?多谢了,冠军。祝你生活幸福。。非常棒的解决方案只有两行代码…很好。评论晚了,但这个答案假设响应中有标题。