在PHP中从post请求写入xml数据时出错

时间:2014-04-01 09:37:18

标签: php xml arrays post

我试图通过我的本地计算机使用PHP模拟Web服务发布请求,并且我遇到了一些问题。

首先,我有一个php文件通过Post发送xml文件,在数组中:

<?php

$xml = file_get_contents('localstorage.xml');
$url = 'http://127.0.0.1/projects/My_webservice/rebreFitxer1.php';

$post_data = array('xml' => $xml, );

$stream_options = array(
'http' => array(
    'method'  => 'POST',
    'header'  => 'Content-type: application/x-www-form-urlencoded' . "\r\n",
    'content' =>  http_build_query($post_data)));

$context = stream_context_create($stream_options);
$response = file_get_contents($url, null, $context);

?>

然后在另一边我有另一个php文件加载xml内容并将其写入xml文件。

<?php

header('Content-type: text/xml');

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$postText = file_get_contents('php://input');    // load the content loaded via POST

$postText = utf8_encode($postText);

$datetime = date('ymdHis');
$xmlfile = "myfile" . $datetime . ".xml";   //new file name

$FileHandle = fopen($xmlfile, 'w') or die("can't open file");
// open the new file in writing mode
fwrite($FileHandle, $postText);
fclose($FileHandle);

?>

我得到的是一个糟糕的形成的xml,我试图转换编码但似乎没有任何操作。 这是我得到的:

XML =%3C%3Fxml +版本%3D%221.0%22 +编码%3D%22utf-8%22%3F%3E%0A%3CXml ...........等 --- ^

似乎符号“&lt;&gt;”写得不好 - &gt;喃%3ERetard%3C%2FNom%3E%0A ++++++%3C 但我不知道如何解决它

我是php的新手,我确信我做的事情很糟糕......

提前致谢

1 个答案:

答案 0 :(得分:1)

您的XML应存储在$_POST["xml"]变量中。所以你可以尝试:

<?php $postText = $_POST["xml"]; ?>