php - 发送和接收xml文档

时间:2011-07-21 16:17:44

标签: php

我试图从也支持php的网络服务器上获取一个xml文档。 它类似于传统的Web服务,但我想在php中实现它。这甚至可能吗?

更具体地说明我的需求 - 我想将一个xml文档作为请求发送到服务器,让PHP对它进行一些处理并将一个xml文档作为响应发回给我。

提前致谢。

3 个答案:

答案 0 :(得分:4)

也许你只想要http://php.net/SOAP

如果不是SOAP,那么您可以发送XML POST请求并使用$xml = file_get_contents('php://input');将其转储到可以提供给http://php.net/DOM或其他XML处理器的变量。

处理后,您header('Content-Type: text/xml');(或application / xml)并输出修改后的XML文档。

答案 1 :(得分:0)

读取XML请求正文的超级简单示例:

$request = http_get_request_body();
if($request && strpos($request, '<?xml') !== 0){
   // not XML do somehting appropriate
} else {
  $response = new DomDocment(); // easier to manipulate when *building* xml
  $requestData = DomDocument::load($request);
  // process $requestData however and build the $response XML

  $responseString = $response->saveXML();
  header('HTTP/1.1 200 OK');
  header('Content-type: application/xml');
  header('Content-length: ', strlen($responseString));
  print $responseString;
  exit(0);

}

答案 2 :(得分:-1)

使用curl。

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$xmlString);

//execute post
$result = curl_exec($ch);