0

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

4

3 回答 3

1

我认为您应该执行以下操作:

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

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

给出以下 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');

希望这可以帮助

于 2013-05-13T00:52:09.100 回答
0

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

听起来你需要做几件事。

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

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

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

于 2013-05-13T00:06:45.887 回答
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');
于 2013-05-13T08:13:29.843 回答