我正在使用PHP http_post_data()调用将数据发送到cakephp控制器。我这样做:
$response=http_post_data($url, $xml_data_encoded);
数据到达目的地正常,我得到一个响应,保持响应状态。在我的情况下,状态是数字1,这意味着-data交付正常。你可以从下面的代码中看到我不仅得到状态number(在消息的底部)以及整个http post标题。如何从标题代码中删除此消息,以便最终响应消息仅保存状态号?
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));
并没有得到任何回应。 任何帮助将受到高度赞赏。
答案 0 :(得分:2)
$response = http_post_data($url, $data);
preg_match_all('~HTTP/1\.[01]\s(\d{3})~', $response, $codes);
$codes
将存储所有匹配项。只需print_r
数组并查找所需的键。
答案 1 :(得分:2)
您可以使用http_parse_message
代替正则表达式$response = http_parse_message(http_post_data($url, $data));
print $response->body;