使用php将POST数据转储到XML

时间:2014-01-17 12:23:42

标签: php xml http post

我维护一个网店,生成其订单的xml文件。应使用http-POST将这些订单推送到履行中心的URL。

我们为此构建了一个脚本,并根据履行中心的URL对其进行了测试,它似乎有效,但由于我们无法继续对该URL进行测试(因为FFC认为它是真正的订单)我想要自己进行测试。我可以将POST发送的内容再次转储到每个订单一个.xml。

为此,我尝试了几个脚本,包括Dump XML Posts from 'php://input' to file,但它们似乎都没有用。倾向于TXT也可以用于测试目的。

你们有谁知道我能做什么?

4 个答案:

答案 0 :(得分:2)

您可以使用浏览器的扩展程序 对于firefox,HTTP Resource Test

我误解了这个问题

你也可以这样做,这更简单 它会将内容附加到txt文件

function debug($content){
$fh = fopen("postrequest.txt", 'a') or die("can't open file");
fwrite($fh, $content."\n");
fclose($fh);
}
$input = file_get_contents("php://input");
debug($input);

答案 1 :(得分:1)

$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($_POST, array ($xml, 'addChild'));
print $xml->asXML();

答案 2 :(得分:1)

如果$ _POST具有单维数组,请尝试使用此简单数组进行xml转换。

$post_arr = $_POST;
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($post_arr , array ($xml, 'addChild'));
print $xml->asXML();

对于多维数组:请参阅此答案:

https://stackoverflow.com/a/19051521/270037

答案 3 :(得分:0)

感谢SO-User Vic Degraeve解决方案。

$input = file_get_contents("php://input");
$xml = urldecode($input);
$fh = fopen(time() . ".xml", 'a') or die ("Can't create file!");
fwrite($fh, $xml);
fclose($fh);