我维护一个网店,生成其订单的xml文件。应使用http-POST将这些订单推送到履行中心的URL。
我们为此构建了一个脚本,并根据履行中心的URL对其进行了测试,它似乎有效,但由于我们无法继续对该URL进行测试(因为FFC认为它是真正的订单)我想要自己进行测试。我可以将POST发送的内容再次转储到每个订单一个.xml。
为此,我尝试了几个脚本,包括Dump XML Posts from 'php://input' to file,但它们似乎都没有用。倾向于TXT也可以用于测试目的。
你们有谁知道我能做什么?
答案 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();
对于多维数组:请参阅此答案:
答案 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);