gpt4 book ai didi

php - 在保持锁定的同时读取和写入文件

转载 作者:可可西里 更新时间:2023-11-01 12:26:01 26 4
gpt4 key购买 nike

我通过将当前计数存储在文件中来制作一个简单的页面加载计数器。这就是我想要这样做的方式:

  1. 锁定文件(flock)
  2. 读取当前计数(fread)
  3. 增加它 (++)
  4. 写入新计数 (fwrite)
  5. 解锁文件/关闭文件 (flock/fclose)

这可以在不丢失锁的情况下完成吗?

据我了解,如果不丢失锁就无法写入文件。我想出的解决这个问题的唯一方法是使用“r+”模式写一个字符,然后计算字符数。

最佳答案

如前所述,您可以使用 FLock。一个简单的例子是:

//Open the File Stream
$handle = fopen("file.txt","r+");

//Lock File, error if unable to lock
if(flock($handle, LOCK_EX)) {
$count = fread($handle, filesize("file.txt")); //Get Current Hit Count
$count = $count + 1; //Increment Hit Count by 1
ftruncate($handle, 0); //Truncate the file to 0
rewind($handle); //Set write pointer to beginning of file
fwrite($handle, $count); //Write the new Hit Count
flock($handle, LOCK_UN); //Unlock File
} else {
echo "Could not Lock File!";
}

//Close Stream
fclose($handle);

关于php - 在保持锁定的同时读取和写入文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2450850/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com