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

>锁定文件(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);

php – 在保持锁定的同时读取和写入文件的更多相关文章

  1. “Flock”iOS应用程序如何检测拍摄照片的时间?

    Flock是一个相当新的iOS应用程序,来自Bump的人,它有一个有趣的功能.它以某种方式知道其他应用程序何时拍摄照片,通知用户,并要求用户将其分享到相册中.当然还有其他有趣的功能,但我对我正在开发的另一个应用程序的这个功能特别感兴趣.我无法看到API如何直接促进这一点.我仔细查看了通知api文档,应用程序当然可以注册以在将来的日期/时间向用户显示通知,因此当时用户可以打开…

  2. php fread函数使用方法总结

    在本篇内容里小编给大家分享了关于php fread函数使用方法以及相关知识点,需要的朋友们跟着学习参考下。

  3. php fread读取文件注意事项

    php fread函数用于从文件中读取一定长度的字符,本文章向大家介绍fread读取文件的实例以及使用该函数读取文件需要注意的几个地方,需要的朋友可以参考一下。

  4. PHP flock 文件锁详细介绍

    脚本之家小编今天将为大家详解关于php中文件锁函数flock函数用法简介,希望通过本文的介绍大家对于Linux方面能够更加的了解

  5. php使用flock阻塞写入文件和非阻塞写入文件的实例讲解

    下面小编就为大家带来一篇php使用flock阻塞写入文件和非阻塞写入文件的实例讲解。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  6. 为什么从我刚刚编写的php://内存包装器中读取失败?

    我试图使用fread()从PHP://内存包装器中读取,但fread()始终返回false.我的代码简化了:fread()之后$file始终为false.这是怎么回事?你需要在写完之后回滚,然后才能阅读你刚才写的内容,因为写入会将文件指针移动到文件的末尾

  7. PHP和并发文件访问

    我正在PHP中构建一个小型网络应用程序,将一些信息存储在纯文本文件中.但是,这个文本文件在某个给定的时间点和可能的同时由我的应用程序的所有用户使用/修改.所以问题是.什么是确保只有一个用户可以在任何给定时间点更改文件的最佳方法?

  8. CentOS重启后无法上网&fread与imread读图片的差别

    但昨天一次重启后居然无法上网,怎么都连接不上。所以我比较了readBmp2Ptrwhole()读出来的最后一行与opencv的imread的Mat.data的第一行,果然数据一致了。

  9. php – 以线程安全的方式创建文件

    UPD:添加标签以便轻松讨论UPD2:我正在使用filesize,因为我没有看到任何其他可靠的方法来检查当前线程是否创建了文件UPD3:解决方案应该是无条件竞赛.一个可能的,稍微丑陋的解决方案是锁定一个锁文件,然后测试该文件是否存在:这应该允许对文件的独占访问,并且还允许决定是否调用fopen;将创建该文件.

  10. php – 使用flock()检查文件是否已被锁定?

    我会检查是否无法锁定文件,如下所示:

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部