我有这样的代码,通过cURL将XML文件中的数据发送到新闻办公室。现在我想得到媒体的反馈,我的订单已经确认或完成。我也希望将其保存在XML文件中。我知道如何通过curl发送文件,现在我想知道如何接收它们,这样我就可以读出数据。欢迎提出任何建议。
这就是我发送XML:的方式
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $incomm_prod_server);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 4);
curl_setopt($ch, CURLOPT_POSTFIELDS, str_replace('{voucher_code}', $voucher_code, $xml_data));
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Connection: close'));
因此,这就是我在另一边所做的,以获得XML:
$ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); $result_xml = simplexml_load_string(curl_exec($ch));
但我得到的结果是bool(false),所以没有发送xml?
编辑:我可以访问这样的数据:
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){ $postText = file_get_contents('php://input'); } die(var_dump($postText));
我最后一次编辑了一个,也许它会帮助其他人,我现在用这种方式访问我的xml:
if ( $_SERVER['REQUEST_METHOD'] === 'POST' ){
$postText = file_get_contents('php://input');
}
$xml = new SimpleXMLElement($postText);
$packing_number = $xml->xpath('/feedback/packing_number');
$packing_status = $xml->xpath('/feedback/packing_status');
这将给你一个数组,你可以访问它像:
$packing_number[0]
或者只是循环通过它。
好的,所以上面发布的代码并不是真的发送XML文件。它所做的只是将XML文件的内容放入附加到请求的$_POST
变量中。
要接收数据(另一方面),您所要做的就是查看$_POST
变量,并且您的XML数据应该在那里。您可以设置一个脚本,并将数据发布到其中(可能使用与上面使用的方法相同的方法),您可以访问内容。