如何通过php / javascript保存javascript字符串中包含的xml

时间:2014-01-24 06:37:12

标签: javascript php xml

我在javascript字符串中有xml页面内容。我需要使用php将其保存到服务器端的my.xml中。但我似乎无法通过POST方法传递xml-content-string值。我尝试了file_get_contents和curl,但发现这不是我想要的,因为我的xml内容是字符串格式而不是文件。 任何人都可以帮我将这个字符串保存在javascript中作为正确的xml内容。

提前致谢

我正在附上我的代码

page1.php中

  <form name = "frm_first" method = "POST">
    <input type = "hidden" name = "xml_string">
    ...............


<script type = "text/javascript" language = "javascript">
function getDataXML(){
 xmlString = chart.getDataXML();// This is where I get my xml data into the string
 document.frm_first.xml_string.value = xmlString;
 alert(xml_string); //Good
 document.frm_first.submit();
}
</script>

Page2.php //这是提交帖子的页面。

    <?php
    echo print_r($_POST);//xml_string vaiable is empty. Other variables are getting displayed.
    $domtree = new DOMDocument('1.0','UTF-8');
    $domtree->loadXML($_POST['xml_string']);// Error :empty string supplied as input
    $domtree->save("my.xml"); //Yes , I have access to the file.
?>

$ _ POST ['xml_string']为空是我的问题。其他变量通过POST传递。

2 个答案:

答案 0 :(得分:0)

当我尝试保存XML文件时,用PHP调整标题就行了:

header("Content-Disposition: attachment; filename=file.xml");

但是发送XML应该可以作为字符串。你收到任何错误信息吗?

答案 1 :(得分:0)

很抱歉回答我自己的问题,但认为它也可能对其他人有用。  我做了一个if array_key_exists('xml_string',$ _POST)

<?php
if array-_key_exists('xml_string', $_POST) 
{
    echo print_r($_POST);
    $domtree = new DOMDocument('1.0','UTF-8');
    $domtree->loadXML($_POST['xml_string']);
    $domtree->save("my.xml"); 
?>

现在$ _POST变量正常进入。