如何在PHP5中接收和处理通过POST请求的XML文件?

如何在PHP5中接收和处理通过POST请求的XML文件?,php,xml,simplexml,remote-access,Php,Xml,Simplexml,Remote Access,我想在PHP5中使用simeplexml类来处理一个小的XML文件。但为了获得该文件,脚本必须向远程服务器发送一个特定的POST请求,该服务器将“给”我一个XML文件作为回报。所以我认为我不能使用“simplexml\u加载文件”方法。此文件仅用于处理,然后它可以,甚至应该消失/删除。 我有这种类型的HTTP头 $header = 'POST '.$gateway.' HTTP/1.0'."\r\n" . 'Host: '.$server."\r\n".

我想在PHP5中使用simeplexml类来处理一个小的XML文件。但为了获得该文件,脚本必须向远程服务器发送一个特定的POST请求,该服务器将“给”我一个XML文件作为回报。所以我认为我不能使用“simplexml\u加载文件”方法。此文件仅用于处理,然后它可以,甚至应该消失/删除。 我有这种类型的HTTP头

$header = 'POST '.$gateway.' HTTP/1.0'."\r\n" .
          'Host: '.$server."\r\n".
          'Content-Type: application/x-www-form-urlencoded'."\r\n".
          'Content-Length: '.strlen($param)."\r\n".
          'Connection: close'."\r\n\r\n";

也不知道下一步该怎么做。有fsockopen,但我不确定这是否合适,或者如何使用它。

我会使用HTTP客户端库(如果你是受虐狂,则使用cURL)来创建POST请求,然后将响应体馈送到或
simplexmlement::\uu construct()

我的建议是使用Zend_Http_客户端库或cURL之类的工具。使用fsockopen使一切正常将是调试的一大难题

Zend_Http_客户端有一个很好的接口,可以非常好地工作

CURL也不是很痛苦,它已经是大多数PHP构建的一部分。 示例如下:

$ch = curl_init();
// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); // Replace with your URL
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
$output = curl_exec($ch) // Return the XML string of data

// Parse output to Simple XML
// You'll probably want to do some validation here to validate that the returned output is XML
$xml = simplexml_load_string($output);