我试图通过我的本地计算机使用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的新手,我确信我做的事情很糟糕......
提前致谢
答案 0 :(得分:1)
您的XML应存储在$_POST["xml"]
变量中。所以你可以尝试:
<?php
$postText = $_POST["xml"];
?>