使用php将POST数据转储到XML
我维护一个webshop,它生成订单的xml文件。应使用http POST将这些订单推送到履行中心的URL 我们为此构建了一个脚本,并针对履行中心的URL对其进行了测试,它似乎可以工作,但由于我们无法继续针对该URL进行测试(因为FFC会认为这是真正的订单),我想制作自己的测试环境。如果我可以再次将随POST发送的内容转储到每个订单的一个.xml 为此,我尝试了几个脚本,包括,但它们似乎都不起作用。出于测试目的,向TXT倾倒也将被罚款 你们有谁知道我能做什么吗?使用php将POST数据转储到XML,php,xml,http,post,Php,Xml,Http,Post,我维护一个webshop,它生成订单的xml文件。应使用http POST将这些订单推送到履行中心的URL 我们为此构建了一个脚本,并针对履行中心的URL对其进行了测试,它似乎可以工作,但由于我们无法继续针对该URL进行测试(因为FFC会认为这是真正的订单),我想制作自己的测试环境。如果我可以再次将随POST发送的内容转储到每个订单的一个.xml 为此,我尝试了几个脚本,包括,但它们似乎都不起作用。出于测试目的,向TXT倾倒也将被罚款 你们有谁知道我能做什么吗?$xml=newsimplexml
$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)
afterreturn$dom->saveXML()代码>这不会创建文件。对此原因有何想法?(文件夹权限为777)我不能再编辑了,所以我正在使用它。忘记指定我使用了链接到的多维数组脚本,因为输入是多维的。不,我没有(检查日志文件等)。但是我不确定$node\u name=“root”
。创建.txt文件()的脚本可以工作,但编码错误。因此,至少我确信POST部分是有效的;fwrite($handle,$strxml);fclose($handle)
afterreturn$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的文件中我。最后,你必须废弃文件,以了解一个请求的结束位置和另一个请求的开始位置