PHP 是一种服务器端语言。任何时候任何人访问服务器上的 PHP 程序,它都会运行,无论谁是客户端。
所以,想象一个拥有计数器的程序。它将其存储在数据库中。每次调用 updatecounter.php 时,计数器都会更新一。
你浏览到 updatecounter.php,它告诉你计数器现在是 34。
下次您浏览 updatecounter.php 时,它会告诉您计数器为 53。
它比您预期的增加了 18 个计数。
这是因为 updatecounter.php 在没有您干预的情况下运行。它是由其他人运行的。
现在,如果您查看 updatecounter.php,您可能会看到如下代码:
require_once("my_code.php);
$counterValue = increment_counter_value();
echo "New Counter Value = ".$counterValue;
请注意,程序的主要核心存储在与您正在调用的程序不同的程序中。
另外,请注意,您可以调用任何东西,而不是调用 increment_counter_value。因此,每当有人浏览 updatecounter.php 或任何您的游戏名称时,都可以运行内部游戏机制。例如,您可以有一个每小时统计管理例程,每次调用它时都会检查它是否在最后一小时内运行过,如果没有,它将执行所有统计信息。
现在,如果没有其他人在玩你的游戏怎么办?如果发生这种情况,那么每小时的统计管理就不会被调用,你的游戏世界就会死掉。因此,您需要做的是创建另一个程序,其唯一功能是运行您的统计信息。然后,您将在服务器上安排该程序以每小时间隔运行。您可以使用称为CRON作业的东西来执行此操作。如果您在 Apache 上,您可能会发现您的主机已经内置了这个工具。我不会详细介绍任务调度,因为在不了解您的环境的情况下不可能给出正确的答案。但基本上,您需要安排一个 PHP 程序在服务器上运行以执行每小时维护。
这是关于 CRON 作业的教程:
http://net.tutsplus.com/tutorials/other/scheduling-tasks-with-cron-jobs/
我自己没有使用过它,但我对 tutsplus 上的其他东西没有任何问题,所以你应该没问题。