首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP中的一个普通计数器失败

PHP中的一个普通计数器失败
EN

Stack Overflow用户
提问于 2022-10-05 01:07:53
回答 1查看 86关注 0票数 -4

我有一个PHP脚本,每次检索页面时都会更新一个计数器。在bash中创建文件之后,

代码语言:javascript
复制
echo -n 0 > counterfile.txt

PHP页面如下所示:

代码语言:javascript
复制
<?php
$count = 'counterfile.txt';
file_put_contents($count,1+file_get_contents($count),LOCK_EX);
?>

这件事很好,我看到counterfile.txt正在更新,但有时计数器会被重置,或者至少有时今天的计数器值小于昨天的值。

为什么会这样呢?也许是10号基地的问题.?也许出于某种原因这更安全:

代码语言:javascript
复制
<?php
$count = 'counterfile.txt';
$n = file_get_contents($count);
file_put_contents($count,($n++),LOCK_EX);
?>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-10-05 04:04:30

在继续写入之前,确保file_get_contents成功(不返回false) (否则计数器将被重新设置为1,这是不可取的)。

因此:

代码语言:javascript
复制
<?php
$count = 'counterfile.txt';
$var1=file_get_contents($count);

if ($var1!=false){
file_put_contents($count, (1+$var1) ,LOCK_EX);
}

?>

或者,您可以使用db方法(每次将字段值增加一个)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73955031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档