【发布时间】:2021-12-30 12:42:40
【问题描述】:
我想通过使用file_put_contents 定期更新(重写,而不是附加)来自 php 的 txt 文件。另一个 php API 读取此文件并为用户打印内容。
是否有可能当用户想通过 PHP API 读取文件时,它返回空?因为当第一个 PHP 文件尝试更新文件时,它会擦除数据然后写入新内容。如果可以,如何避免?
【问题讨论】:
-
这当然有可能发生,这取决于您的服务器如何处理文件锁定。我将它作为一个三步操作来完成 - 将文件输出为新名称,完成后,删除原始文件,然后将新文件重命名为旧名称。让“其他”API 检查文件是否存在,如果不存在,则它在擦除和重命名之间的短窗口中,它可以重试。取决于输出文件需要多长时间,以及您希望多久更新一次文件,以了解这可能存在多大问题。
-
这听起来像是数据库的用例,而不是文件
-
另外,内容来自哪里?如果它来自数据库,为什么还要添加文件?