让PHP覆盖XML文件?

时间:2011-07-12 18:18:59

标签: php xml

我希望当有人在表单上点击“提交”然后打开一个xml文件并用表单中生成的新数据覆盖所有内容。

PHP能做到吗?我应该寻找什么才能开始?有什么例子吗?

4 个答案:

答案 0 :(得分:0)

是的,使用

  • fwrite

    $toWrite; // data generated from form, formatted to XML
    $fp = fopen('data.xml', 'w');
    fwrite($fp, $toWrite);
    fclose($fp);
    

答案 1 :(得分:0)

听起来你刚开始。
您需要研究以下内容:

  1. POST请求
  2. PHP中的文件操作
  3. 另外,如果您有一个特定于php的问题,请将其提取到一个单词并在php.net/的末尾添加它
    例如,尝试访问php.net/xml(您将找到有关使用XML的文档)
    而且,无论谁改变原来的海报 - cmon,man。如果你认为它只是一个问题的基础,那就继续吧。我们都必须从某个地方开始。

答案 2 :(得分:0)

1 - 填写表格以填写数据 2 - 将表单数据发送到操作页面(如果您愿意,可以是同一页面) 3 - 从表单中将数据写入XML文件。 4 - 完成了!

我不明白为什么你需要交换数据。 您只需使用所需数据创建新的XML文件就很容易。 请看下面的示例。

    // YOUR DATA FROM METHOD POST OR GET
       $doc1 = $_POST['doc1'];
       ... and so on 


    // Start XML file, echo parent node
       $data = '<sistema versao="1.02" encoding="utf-8">';

    // ADD TO XML DOCUMENT NODE


  $data .=  '<dest>';
      $data .=  '<doc>' . parseToXML($doc1) . '</doc>';
      $data .=  '<xName>' . parseToXML($name) . '</xName>';
      $data .=  '<addrDest>';
        $data .=  '<xLgr>' . parseToXML($addr) . '</xLgr>';
        $data .=  '<nro>' . parseToXML($num) . '</nro>';
        $data .=  '<xCpl>' . parseToXML($comp) . '</xCpl>';
        $data .=  '<xSub>' . parseToXML($suburb) . '</xSub>';
        $data .=  '<cMun>3523206</cMun>';
        $data .=  '<xMun>' . parseToXML($city) . '</xMun>';
        $data .=  '<UF>' . parseToXML($state) . '</UF>';
        $data .=  '<CEP>' . parseToXML($zip) . '</CEP>';
        $data .=  '<cCoun>1058</cCoun>';
        $data .=  '<xCoun>BRASIL</xCoun>';
        $data .=  '<phone>' . parseToXML($tel1) . '</phone>';
      $data .=  '</addrDest>';
      $data .=  '<email>' . parseToXML($email) . '</email>';
      $data .=  '</dest>';


        // End XML file
        $data .=  '</sistema>';


        # Put data into client.xml 
        file_put_contents('client.xml', $data);

我希望这会给你一个开始。祝你好运!

答案 3 :(得分:0)

这看起来已经回答了,但是fwrite()解析并没有真正解释它对我们新手的作用。我使用了file_put_contents,但这是一个有效的例子......

$writeXML = new XMLWriter();
$writeXML->openMemory();
$writeXML->setIndent(true);
$writeXML->startDocument("1.0","UTF-8");
$writeXML->startElement($root);

//foreach loop iterating through array results and writing elements

$writeXML->endDocument();
//this will overwrite the xml file
file_put_contents('xmlfile.xml', $writeXML->flush(true));
//this will append any data to the end of the file
file_put_contents('xmlfile.xml', $writeXML->flush(true), FILE_APPEND);

希望这有助于... file_put_contents:PHP Manual