如果脚本设置为在页面加载时将文本保存到给定的.txt文件(file_put_contents),那么当2个用户在同一时间加载页面时会发生什么?
其中一个用户(或两者)是否收到错误? .txt文件是否会损坏?写入.txt文件的文本是否会被破坏? ...或?
我编写了一个缓存函数,用于从API获取内容并将其保存到.txt文件中。如果自上次提取新数据以来已超过3分钟,它会将新数据写入.txt文件。 (如果需要提取新数据,或者应该使用来自.txt文件的数据,它决定页面加载。)
这会没有问题吗?或者我有什么办法可以防止任何错误发生?
答案 0 :(得分:0)
不会发生错误,但两个进程都会同时写入文件。
您需要使用LOCK_EX
标志来确保一次只有一个进程写入文件:
if (false === file_put_contents('path/to/file', 'data', LOCK_EX)) {
// Writing to the file failed
}