避免与 PHP 冲突 file_put_contents

avoiding conflicts with php file_put_contents

提问人:chillywilly 提问时间:9/17/2022 更新时间:9/17/2022 访问量:71

问:

我正在将访问者自定义搜索查询记录到文本文件中,如下所示:

define('SEARCH_LOG', 'log.txt');
file_put_contents(SEARCH_LOG, "\n" . $search, FILE_USE_INCLUDE_PATH | FILE_APPEND);

每 100 次搜索,我都会对条目进行排序和整理,然后通过电子邮件发送给网站所有者。然后我清除文件,如下所示:

file_put_contents(SEARCH_LOG, "", FILE_USE_INCLUDE_PATH);

我理解这与调用 、 和 连续相同。file_put_contentsfopen()fwrite()fclose()

  1. 我是否需要担心用户之间的冲突,或者这在某种程度上是 为我处理?

  2. 是否需要编写条件重试?

  3. 我应该使用这个标志吗?LOCK_EX

php fopen fwrite fclose 文件放内容

评论

1赞 Lawrence Cherone 9/17/2022
它可能会发生(虽然没有亲眼看到),要么是不一致的数据,比如一个日志行被忽略而另一个日志行写入,或者部分数据等,使用LOCK_EX会导致一个人失败,一个成功等等,我不知道 fpc 实施重试,但你可以做 3v4l.org/ttaXh - 尽管所有这些问题都消失了, 有好处,如果将搜索存储在数据库中
0赞 chillywilly 9/17/2022
谢谢你@LawrenceCherone!如果您想使用链接中的代码将您的回复作为答案发布,我会将其标记为已回答。

答: 暂无答案