簡體   English   中英

使用php將POST數據轉儲到XML

[英]Dump POST data to XML using php

我維護了一個網上商店,該商店會生成訂單的xml文件。 這些訂單應使用http-POST推送到履行中心的URL。

我們為此構建了一個腳本,並針對履行中心的URL對其進行了測試,它似乎可以正常工作,但是由於我們無法繼續對該URL進行測試(因為FFC認為這是真實的訂單),因此我想我自己的測試環境。 我是否可以將POST發送的內容再次轉儲到每個訂單一個.xml。

為此,我嘗試了幾種腳本,包括將XML Posts從'php:// input'轉儲到file ,但是似乎沒有一個起作用。 出於測試目的,轉儲到TXT也可以。

你們中有人知道我能做什么嗎?

您可以將瀏覽器的擴展名用於Firefox, HTTP資源測試

我誤解了這個問題

您也可以這樣做,哪一種imo更簡單,它將內容附加到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);
$xml = new SimpleXMLElement('<root/>');
array_walk_recursive($_POST, array ($xml, 'addChild'));
print $xml->asXML();

如果$ _POST具有一維數組,請嘗試將此簡單數組轉換為xml。

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

對於多維數組:請參閱此SO答案:

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

感謝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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM