[英]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.