PHP 文件处理,可能的数据损坏

PHP file processing, possible data corruption

我有一个由 3 行组成的文件。 第一个 行是一个数据串secondnumberthird 是另一个 number.

同时两个PHP脚本运行。首先是在第一行和第三行写入数据。二是写第二行数据,正在读第一行

这会导致数据损坏吗,因为这两个脚本永远不会写在同一个地方?

如果脚本 A 将数据写入第一行,而脚本 B 当前正在读取数据,那么您最终可能确实会得到该行的损坏数据。发生这种情况的可能性取决于这些操作的频率。很可能是苗条的。但理论上,这可能会发生。

最简单的防范方法是使用

您写入文件的脚本在写入文件时必须获取独占锁。读取文件的脚本必须检查文件当前是否被锁定。如果是,脚本可以等待文件再次释放。

请注意,此方法假定文件只会被这两个 PHP 脚本更改。