加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 13:49:48 所属栏目:PHP教程 来源:网络整理
导读:我通过将当前计数存储在文件中来制作一个简单的页面加载计数器.这就是我想要这样做的方式: 锁定文件(flock) 读取当前计数(fread) 增加它() 写新计数(fwrite) 解锁文件/关闭它(flock / fclose) 这可以在不失锁的情况下完成吗? 据我了解,在不丢失锁定的情况
我通过将当前计数存储在文件中来制作一个简单的页面加载计数器.这就是我想要这样做的方式:

>锁定文件(flock)
>读取当前计数(fread)
>增加它()
>写新计数(fwrite)
>解锁文件/关闭它(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);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读