PHP服务器端增量计数器

时间:2013-10-21 10:01:08

标签: php sql count

抱歉,我是PHP的新手,需要一些帮助/指导来创建一个可以在服务器端工作的计数器,所以我想更新一个初始值?

例如,我需要以1500的基数开始并且每2分钟将该数字增加1,显然所以每次访问时访问者都会看到增加的数字。

初始值是否需要存储在sql中,还是可以更新txt文件?

任何帮助都会很棒,

由于

4 个答案:

答案 0 :(得分:1)

如果你需要它可以在SQL中完成,但文本文件也可以,只需保存一个值(1500),然后创建一个cronjob并让它执行PHP } file,您必须设置执行SQL查询的代码,该查询更新该值或每2分钟更新该文本文件的代码。

示例:

# Every two minutes
*/2 * * * * /your/path/too/this/file/updatecode.php

PHP文件中:

$SQL = "UPDATE table SET columnname = columname + 1";
// etc...

// OR the text file update code

答案 1 :(得分:1)

如果由于某种原因你不需要专门存储它,那么你不需要运行cron等...记下你想要开始的特定时间点的时间戳。然后计算分钟,并将其添加到您的起始编号(1500)

//Start Number
$n = 1500;
$cur_time = time();
$orig_time = strtotime("2013-10-21 10:00:00");

//New Number + difference in minutes (120 seconds for 2 mins) since start time
$newn = $n + round(abs($cur_time - $orig_time) / 120,0);

// Output New Number
echo $newn;

如果你想在一行中复制/粘贴

 echo 1500 + round(abs(time() - strtotime("2013-10-21 10:00:00")) / 120,0);

答案 2 :(得分:0)

如果需要存储它,那么SQL数据库可能有点过分。 创建编号,序列化并将其存储到文件中。下次从文件加载,反序列化,递增,序列化和保存。 您可以将时间戳和数字一起保存到文件中,以避免每2分钟运行一次作业,而是在从文件中加载数字时计算正确的值。

这样的东西(但是应该添加错误检查等,我实际上没有尝试过以确保计算正确...但主要想法应该是可见的。)

<?php

if(file_exists('mydatafile')) {
  $data = unserialize(file_get_contents('mydatafile'));
  // Calculate correct value based on time stamp
  $data['number'] += round((time() - $data['timestamp']) / 120);
}
else {
  // Init the number
  $data["number"] = 1500;
}

// Print it if you need to here

// Update time stamp
$data["timestamp"] = time();

// Serialize and save data
file_put_contents('mydatafile', serialize($data)));

答案 3 :(得分:0)

您可以在没有数据库的情况下使用日期来执行此操作。计算两个日期之间的时间差(当前日期和创建脚本时的开始日期),然后将其分成正确的毫秒数,持续2分钟,并将其添加到最初的1500日。