PHP中的dom在旧文件上保存新内容

Posted

技术标签:

【中文标题】PHP中的dom在旧文件上保存新内容【英文标题】:dom in PHP saves new content over the old File 【发布时间】:2009-11-12 19:20:11 【问题描述】:

每次都这样

$country = $this->dom->saveXML(); // put string in country 
$this->dom->save('country.xml');

它会删除 old country.xml 并创建一个 new country.xml 如何将 country.xml 的旧内容附加到新内容并再次保存为 country.xml

【问题讨论】:

结果中有多少个文件? 您必须重新表述您的问题,因为它实际上并没有多大意义,尤其是那部分:“我怎样才能将旧内容 [...] 写入新内容” - 这是什么意思? hmm.. 图像你有一些国家的文件 country.xml,你现在获取一些其他的东西,如果你保存它,旧的内容将被覆盖,你获取的内容将在文件国家中.xml 我该如何防止呢? @Ivan Nevostruev 只有一个文件 【参考方案1】:

您是否考虑过将新数据附加到现有的“旧”DOM,然后将其保存到 country.xml,而不是尝试将其附加到文件中?这种方式将使文档保持一致和有效。

【讨论】:

如果你使用$this->dom = domxml_open_file('country.xml'),它会从文件中创建一个新的DOM,然后你可以随意追加。 hmm.. 我怎样才能把旧文件的内容放到一个数组中?如果可以的话,我可以在 foreach 循环中编写新的 xml,这很容易 我刚刚意识到,上面的函数只能在 php 4 中工作。如果你使用的是 PHP 5,你会想要使用$this->dom->load('country.xml')【参考方案2】:

如果我理解正确,那么您想将新的 XML 附加到旧文件的末尾吗?这对于 XML 来说有点不寻常,但是您可以简单地通过使用

写入文件来做到这一点
file_put_contents('country.xml', $country, FILE_APPEND);

而不是

$this->dom->save('country.xml');

【讨论】:

是的,您已经理解我的问题。但是,旧的 xml 将无效 如果我按照你写的去做,每次我用新内容 和多个 更新文件时都会得到xml 文档不是有效的 xml。

以上是关于PHP中的dom在旧文件上保存新内容的主要内容,如果未能解决你的问题,请参考以下文章

php 保存编辑器内容中的远程图片为本地图片

加载所有javascript后如何输出DOM?

PHP:如何在我的页面上显示文本文件的内容?

使用 PHP、Ajax、jQuery 将当前 DOM 保存到服务器上的文件?

使用 AJAX 和 php 将内容保存到文件

DOM加载顺序