2012-01-12 42 views
0

嗨,大家好,我下面是我從捲曲響應中收到的。什麼可能是最簡單的解析標題和身體的方式php

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 測試

我認爲可能是正則表達式可以做的最好的工作,但不知道是否正則表達式是最好的方法或是否有任何其他函數可以返回標題separete和身體分開。

任何幫助表示讚賞。謝謝。

更新 現在我得到響應,

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

+1

HTTP頭總是與空白線分離。這是HTTP規範的一部分,應該始終如此(如果不是,那麼你可以說它不是http)。 – 2012-01-12 04:20:55

+0

以及如何使用php – 2012-01-12 04:26:10

+0

檢測空白行取決於您如何解析響應。如果你一行一行地去,那麼當你打空行時,你已經完成了標題並且已經到達了主體。否則,請查找「\ n \ n」並在其上分開/分開。 – 2012-01-12 04:27:39

回答

1

看來似乎應該是簡單的:

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

$ header和$ body打印值1而不是別的 – 2012-01-12 04:24:41

+1

行結束可能取決於您的操作系統。嘗試'\ r \ n'而不是'\ n'。請參閱http://codepad.viper-7.com/RKkPh2。否則,「印花1」究竟意味着什麼? – deceze 2012-01-12 04:37:42

+0

非常感謝冠軍。祝你生活愉快。 ..真棒解決方案只有兩行代碼...好在YA。 – 2012-01-12 04:56:58

相關問題