繁体   English   中英

从PHP中的http_post_data中提取响应主体

[英]Extracting the response body from http_post_data in PHP

我正在使用PHP http_post_data()调用将数据发送到cakephp控制器。我这样做:

$response=http_post_data($url, $xml_data_encoded);

数据到达目的地并且我得到一个保持响应状态的响应。在我的情况下,状态是数字1,这意味着-data交付正常。正如您从下面的代码中看到的,我不仅获得状态编号(在消息的底部)以及整个http帖子标题。如何从标题代码中删除此消息,以便最终响应消息仅保存状态号?

HTTP/1.1 100 Continue
HTTP/1.1 200 OK
Date: Thu, 10 Nov 2011 08:34:15 GMT
Server: Apache/2.2.17 (Ubuntu)
X-Powered-By: PHP/5.3.5-1ubuntu7.3
Set-Cookie: CAKEPHP=xxxxxxxxxxxxxxxx; expires=Fri, 18-Nov-2011 16:34:15 GMT;       path=/XXXXXXXXXX/xxxxxxxx
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Vary: Accept-Encoding
Content-Length: 19
Content-Type: text/html

1

顺便说一句,我也试过这个:

 HttpMessage::getBody(http_post_data($url, $xml_data_encoded));

并没有得到任何回应。 任何帮助将受到高度赞赏。

您可以使用http_parse_message代替正则表达式

$response = http_parse_message(http_post_data($url, $data));
print $response->body;
$response = http_post_data($url, $data);
preg_match_all('~HTTP/1\.[01]\s(\d{3})~', $response, $codes);

$codes将存储所有匹配项。 只需print_r数组并查找所需的键。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM