Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用php将POST数据转储到XML_Php_Xml_Http_Post - Fatal编程技术网

使用php将POST数据转储到XML

使用php将POST数据转储到XML,php,xml,http,post,Php,Xml,Http,Post,我维护一个webshop,它生成订单的xml文件。应使用http POST将这些订单推送到履行中心的URL 我们为此构建了一个脚本,并针对履行中心的URL对其进行了测试,它似乎可以工作,但由于我们无法继续针对该URL进行测试(因为FFC会认为这是真正的订单),我想制作自己的测试环境。如果我可以再次将随POST发送的内容转储到每个订单的一个.xml 为此,我尝试了几个脚本,包括,但它们似乎都不起作用。出于测试目的,向TXT倾倒也将被罚款 你们有谁知道我能做什么吗?$xml=newsimplexml

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

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

为此,我尝试了几个脚本,包括,但它们似乎都不起作用。出于测试目的,向TXT倾倒也将被罚款

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

$xml=newsimplexmlement(“”);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($_POST, array ($xml, 'addChild'));
print $xml->asXML();
数组\u walk\u递归($\u POST,数组($xml,'addChild'); 打印$xml->asXML();
$xml=新的SimpleXMLElement(“”);
数组\u walk\u递归($\u POST,数组($xml,'addChild');
打印$xml->asXML();

如果$\u POST具有一维数组,请尝试此简单的数组到xml转换

$post_arr = $_POST;
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($post_arr , array ($xml, 'addChild'));
print $xml->asXML();
$post\u arr=$\u post;
$xml=新的SimpleXMLElement(“”);
array_walk_recursive($post_arr,array($xml,'addChild'));
打印$xml->asXML();
对于多维数组:请参考此答案:


如果$\u POST具有一维数组,请尝试此简单的数组到xml转换

$post_arr = $_POST;
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($post_arr , array ($xml, 'addChild'));
print $xml->asXML();
$post\u arr=$\u post;
$xml=新的SimpleXMLElement(“”);
array_walk_recursive($post_arr,array($xml,'addChild'));
打印$xml->asXML();
对于多维数组:请参考此答案:


您可以为浏览器使用扩展 对于firefox

我误解了这个问题

你也可以这样做,这在我看来更简单 它将把内容附加到一个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);

您可以为浏览器使用扩展名 对于firefox

我误解了这个问题

你也可以这样做,这在我看来更简单 它将把内容附加到一个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);

感谢SO用户提供的解决方案


感谢SO用户提供的解决方案


我使用了这段代码并添加了
$handle=fopen(“yourxmlfile.xml”,“w”);fwrite($handle,$strxml);fclose($handle)
after
return$dom->saveXML()这不会创建文件。对此原因有何想法?(文件夹权限为777)我不能再编辑了,所以我正在使用它。忘记指定我使用了链接到的多维数组脚本,因为输入是多维的。不,我没有(检查日志文件等)。但是我不确定
$node\u name=“root”
。创建.txt文件()的脚本可以工作,但编码错误。因此,至少我确信POST部分是有效的;fwrite($handle,$strxml);fclose($handle)
after
return$dom->saveXML()这不会创建文件。对此原因有何想法?(文件夹权限为777)我不能再编辑了,所以我正在使用它。忘记指定我使用了链接到的多维数组脚本,因为输入是多维的。不,我没有(检查日志文件等)。但是我不确定
$node\u name=“root”
。创建.txt文件()的脚本可以工作,但编码错误。所以,至少我确信帖子部分是有效的。谢谢你的回答!然而,它似乎并没有真正帮助我。自动脚本将帖子推送到指定的URL,我需要能够看到输出,因此我需要一个脚本来转储帖子中的内容。啊,谢谢。这是可行的,我绝对可以用它来测试脚本!我仍将遵循另一个给定的解决方案,因为这将更加完美。另外,不幸的是,我不能投票支持你的帖子,因为我的声誉太差了……不过有一个问题,编码不完全正确。你知道这方面的解决方案吗(也许只是在头部说明编码?)?我收到了类似于
payment%3E%0A++++++++%3Cmethod%3Em2epropayment%3C%2Fmethod%3E%0A++++%3C%2payment%3E%0A++%3C%2Forder%3E%0A%3C%2Fordercollection%3E%0A
删除调试,用
$xml=urldecode($input)替换它和更改顺序(首先php://input,然后是bij URDECODE,最后是fopen(写入fclose)的计算结果。这个解决方案是由<非常感谢!谢谢你的回答!然而,它似乎并没有真正帮助我。自动脚本将帖子推送到指定的URL,我需要能够看到输出,因此我需要一个脚本来转储帖子中的内容。啊,谢谢。这是可行的,我绝对可以用它来测试脚本!我仍将遵循另一个给定的解决方案,因为这将更加完美。另外,不幸的是,我不能投票支持你的帖子,因为我的声誉太差了……不过有一个问题,编码不完全正确。你知道这方面的解决方案吗(也许只是在头部说明编码?)?我收到了类似于
payment%3E%0A++++++++%3Cmethod%3Em2epropayment%3C%2Fmethod%3E%0A++++%3C%2payment%3E%0A++%3C%2Forder%3E%0A%3C%2Fordercollection%3E%0A
删除调试,用
$xml=urldecode($input)替换它和更改顺序(首先php://input,然后是bij URDECODE,最后是fopen(写入fclose)的计算结果。这个解决方案是由<非常感谢!尝试此操作,但不幸没有得到响应或错误:(尝试此操作,但不幸没有得到响应或错误:(这也可以,但请记住,fopen中的“a”会将内容附加到具有相同名称的文件中。最后,您必须废弃该文件,以了解一个请求的结束位置和另一个请求的开始位置。这也会起作用,但请记住,fopen中的“a”会将内容附加到具有相同na的文件中我。最后,你必须废弃文件,以了解一个请求的结束位置和另一个请求的开始位置