当用户使用PHP提交表单时,我需要找到一种编辑XML文件的方法

时间:2013-05-12 23:45:35

标签: php fopen

所以我有一个显示XML文件数据的网页。但是,我有一个表格,理想情况下应该能够更改数据。我认为实现这一目标的最佳方法是在PHP中使用Fopen函数并编辑特定的Text行。字符串不会长,最多4个字。我如何使用打开,读取和写入文件的fopen和一系列函数来查找代码行并替换它?

3 个答案:

答案 0 :(得分:1)

我认为你应该做以下事情:

  1. 将HTML中输入标记的名称与XML中的节点相匹配(这只是建议让您的代码更有条理)

  2. 当您将数据发回服务器时,在您的Php代码中,使用SimpleXML,您可以执行以下操作

  3. 提供以下XML文件

    <root>
        <config id="1">
            <name>old name</name>
            <category>old category</category>
        </config>
        <config id="2">
            <name>old name</name>
            <category>old category</category>
        </config>
    </root>
    

    //Load the XML file
    $xml = simplexml_load_file('PATH TO YOUR XML FILE');
    //Update the values that you want to update
    foreach($xml->root->config as $configGroup)
    {
        //Set the $IdToUpdate variable with the Id of the group that you want to update.
        if ($configGroup['id'] == $IdToUpdate)
        {
            $configGroup->name = $_POST['name' . $IdToUpdate];//Your html must have the proper input names.
            break;
        }
    }
    
    //Save the changes
    $xml->asXml('PATH TO YOUR XML FILE');
    

    希望这有帮助

答案 1 :(得分:0)

你可能想从这里开始: http://www.php.net/manual/en/refs.xml.php

听起来你需要做几件事。

i)将xml解析为对象或数组。

ii)找到您想要更新的元素。

iii)更新所述元素后,将xml写回文件。

答案 2 :(得分:0)

好的,我的问题的答案非常简单。如果你像我一样,基本上是PHP编程的新手然后功能,这可能会变得非常棘手,或者至少对我来说。当您使用XML中的数据时,每个标记基本上都成为一个数组。

<configure id="firstblock">
    <name>Name</name>
    <category>Old</category>
</configure>
<configure id="second block">
     <name>Name2</name>
     <category>New</category>
</configure>

请注意configure的行为类似于数组。

$xml = SimpleXML_load_file('location of xml file here');
$xml->configure[0]->color = $_POST['name1'];
$xml->configure[0]->category = $_POST['category'];
$xml->configure[1]->name =$_POST['name2'];
$xml->configure[1]->category =$_POST['category2'];
$xml->asXml('location of xml file here');