抱歉,我是 PHP 新手,需要一些帮助/指导来创建一个可以在服务器端工作的计数器,所以我想更新一个初始值?
例如,我需要从 1500 的基数开始,每 2 分钟将该数字增加 1,显然,因此任何访问者每次访问时都会看到增加的数字。
初始值需要存储在sql中还是可以更新txt文件?
任何帮助都会很棒,
谢谢
如果您愿意,可以在其中完成,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
如果需要存储它,则为此使用 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)));
您可以在没有数据库的情况下仅使用日期来执行此操作。计算出两个日期(当前日期和创建脚本时的开始日期)之间的时间差,然后将其除以正确的毫秒数,持续 2 分钟,然后将其添加到初始 1500 中。
如果您出于某种原因不需要专门存储它,那么您不需要运行 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);