2013-02-12 56 views
0

我試圖從php://輸入數據,以便我可以將原始數據存儲到XMLElement中,以便我可以對它進行排序,並將數據與在我的一個數據庫中的表格。我也嘗試使用$ _POST並存儲,但我碰到使用$ _POST的問題是我沒有獲取字段標題,所以我無法存儲數據。未格式化的文本來自php://輸入

我目前使用此代碼從http POST檢索原始數據。

$PostContents = file_get_contents(php://input); 
echo $PostContents; 

這是從該代碼返回的數據。

xml=%3COPS%3E+%0D%0A%3CAuthentication%3E%3CSecretKey%3Ex44%3C%2FSecretKey%3E+%0D%0A%3C%2FAuthentication%3E+%0D%0A%3CAction%3EUpdate+Person+Status%3C%2FAction%3E+%0D%0A%3CUpdatePersonStatus%3E+%0D%0A%3CPerson%3E+%0D%0A%3CName%3EDavid%3C%2FOrderNumber%3E+%0D%0A%3CAge%3EShipped%3C%2FOrderStatus%3E+%0D%0A%3CAddress%3EThird+Party%3C%2FAddress%3E+%0D%0A%3CPhone%3EUPS+Grd%3C%2FPhone%3E+%0D%0A%3C%2FPerson%3E%0D%0A%3C%2FUpdatePersonStatus%3E+%0D%0A%3C%2FOPS%3E+%0D%0A 

以下是生成該輸出的內容。

<html> 
<body> 
<form action="http://172.16.100.116/php.php" method="post"> 
<textarea name="xml" rows="20" cols="40"><OPS> 
<Authentication><SecretKey>x44</SecretKey> </Authentication> 
<OPS> 
<Authentication><SecretKey>x44</SecretKey> 
</Authentication> 
<Action>Update Person Status</Action> 
<UpdatePersonStatus> 
<Person> 
<Name>David</Name> 
<Age>21</Age> 
<Address>123EasyStreet</Address> 
<Phone>6666666666</Phone> 
</Person> 
</UpdatePersonStatus> 
</OPS> 
</textarea> 
<input type=submit> 
</form> 
</body> 
</html> 

(這裏使用的HTML文件是嚴格的測試目的是通過爲加標題的XML信息內的數據。)

所以我的問題是什麼,我需要做的就是('php:// input')中的數據轉換爲XML,以便我可以對它進行分類?

回答

0

您應該使用urldecode並取出xml=

urldecode($PostContents);

這將是結果

<OPS> 
<Authentication><SecretKey>x44</SecretKey> 
</Authentication> 
<Action>Update Person Status</Action> 
<UpdatePersonStatus> 
<Person> 
<Name>David</OrderNumber> 
<Age>Shipped</OrderStatus> 
<Address>Third Party</Address> 
<Phone>UPS Grd</Phone> 
</Person> 
</UpdatePersonStatus> 
</OPS> 
+0

感謝你,沒有的伎倆! – choppyfireballs 2013-02-12 18:31:14

+0

熟悉urldecode,htmlspecialcharacters等。這些函數旨在使生活更輕鬆:D – user20232359723568423357842364 2013-02-12 18:35:21

+0

嗯,我試過使用htmlspecialchars(),我沒有得到我想要的輸出,但是我仍然沒有得到輸出他列出,我得到了這個。 '更新人員狀態David Shippe 第三方 UPS Grd'我仍未收到<>和 – choppyfireballs 2013-02-12 18:43:52