如果我通过设置file_put_contents
标志的FILE_APPEND
将数据写入文件,并且两个用户同时提交数据,那么它是否会附加,或者是否有可能会覆盖一个条目?
如果我设置LOCK_EX
标志,第二次提交是否会等待第一次提交完成,或者当无法获得排他锁时数据是否丢失?
PHP通常如何处理?我正在运行5.2.9版。如果重要的话。
谢谢, 莱恩
答案 0 :(得分:2)
你也可以检查flock函数来实现正确的锁定(不是基于while / sleep技巧)
答案 1 :(得分:1)
如果通过LOCK_EX
设置独占文件锁,则尝试写入的第二个脚本(按时间顺序)将从file_put_contents返回false。
即:它不会等待文件可用于写入。
因此,如果需要,您需要自己编写此行为,可能是尝试使用file_put_contents 有限次数(例如:3),其使用大小合适{每次尝试之间{3}}。