暂时将数据写入文件。 PHP

时间:2013-12-06 18:29:14

标签: php fopen

我知道有一个创建临时文件的功能,但这不是我想要做的。我想暂时将更改写入存在且将继续存在的文件,然后在以后删除这些更改。我知道我可以fopen,fwrite,fclose。我可以写,然后使用正则表达式来删除这些更改,但我想知道是否有更好的方法。如果不告诉我,我会结束这个问题。

由于

3 个答案:

答案 0 :(得分:2)

我会创建该文件的临时版本(通过直接复制或使用其他方法),添加您想要的任何内容,然后在完成后删除该副本,并使用原始文件再次归档。这似乎更安全,因为它确保您保持文件的原始版本完整,而不是修改文件,并可能在尝试动态还原它时犯错误。

答案 1 :(得分:0)

您可以使用ftruncate()

在附加到您的文件之前保留原始$size = filesize($fn)。当您完成并想要恢复到原始状态时,再次打开文件,然后ftruncate($f, $size)到之前的状态。

通常你宁愿使用临时文件。

答案 2 :(得分:0)

如果您有兴趣创建文件的“历史”数据库,则可以编辑文档,当您单击“保存”时,它会创建带有附加更改的文档的新版本,并使用编辑后的文件夹添加文件名日期?

这样,无论何时对文档进行更改,第一个文档都保持不变,您可以还原以前所做的更改。为了使其更加彻底,您可以为每个更改添加一个到期日期,以便它们随着时间的推移而过期,并且当您进行少量更改时,您的服务器HD不会像疯了一样充满。

编辑:虽然这实际上取决于你想要保持多长时间的变化。如果您计划长时间保留对文件的更改,我会使用一个数据库,其中填充了每个重复的文件名及其编辑日期。