2

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

例如,我需要从 1500 的基数开始,每 2 分钟将该数字增加 1,显然,因此任何访问者每次访问时都会看到增加的数字。

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

任何帮助都会很棒,

谢谢

4

4 回答 4

1

如果您愿意,可以在其中完成,SQL但文本文件也可以,只需保存一个值(1500),然后创建一个cronjob并让它执行一个PHP文件,您必须在其中设置执行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
于 2013-10-21T10:03:54.663 回答
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)));
于 2013-10-21T10:07:15.617 回答
0

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

于 2013-10-21T10:09:19.543 回答
0

如果您出于某种原因不需要专门存储它,那么您不需要运行 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);
于 2013-10-21T10:12:47.127 回答