繁体   English   中英

PHP游戏更新

[英]PHP game update

假设我有一个PHP游戏,这是一个赚钱的游戏,每天市场上的物品价格变化。

我怎样才能让数据库中的价格每天自动更新? 我会在服务器上安装一个程序来检测它何时运行24小时然后运行一个PHP文件进行更新? 或者os有另一种方式吗?

编辑:事情是伙计们,我实际上并不拥有我从托管公司租用的服务器所以我真的没有访问命令行:s

谢谢,斯坦尼

假设您使用的是Unix系统,则应设置每日cronjob。 要执行此操作,请运行“crontab -e”并输入以下内容:

9 21 * * * /path/to/your/script

这将在每天21:09运行。

如果您无法访问命令行,则可以将1x1图像添加到调用php脚本的网站,该脚本会检查是否需要更新某些内容。

就像是

<img style="width: 1px; height: 1px; visibility: hidden" src="cron.php">

在cron.php中,检查数据是否需要更新。

既然您可能无法访问cron,我会做的是检查每次有人加载页面时已经过了多少时间。 如果已经过了24小时,则调用您的更新功能。 如果已经过了48小时,那就打两次电话。 如果没有人加载页面,那么是否已经调用更新函数并不重要,因为没有人在看;)

或者您可以在家中设置一台计算机,每24小时远程调用您的update.php。 您可以使用cron作业和wget执行此操作,或者如果您使用的是Windows,则可以使用任务计划程序。

我认为第一种选择将是最好的。 每次加载页面时调用更新功能,仅在24小时标记过后才更新。 如果你正确地写它,它是否在确切的24小时标记更新并不重要。

您想要设置“cron作业”,或者以您设置的特定间隔运行的PHP文件。

有关更多信息,请查看此文章

关于cron作业的最好的部分是你不仅限于存储过程中可用的一小部分功能。 你可以使用你喜欢的任何逻辑! :)

使用webcron :) http://www.webcron.org/index.php?lang=en

或者这里有一个很好的清单: http//www.onlinecronservices.com/

如果你有一个更新价格的脚本,你想要做的就是每天运行它,使用Cron (linux)或命令 (windows)。

我认为您可以创建一个每次访问页面时调用的函数,并验证是否发生了更新,检查数据库。

所以在一个快速的伪代码中:

function verify_often(){
  if (last_update_in_db() != today() ){
    update_db();
    run_periodic_function(); 
  }
  return 0;
}

此方法仅需要经典的PHP和MySQL组合。

你怎么能'无法访问命令行'? 我想不出任何不允许ssh访问的主机。 访问cron是一个不同的故事,但他们也应该允许这样做。 如果他们不这样做 - 找一个新的主人!

忘记这一切。 没有理由做那样的事情。

您所要做的就是每次有人呼叫网页时进行检查。 您可以跟踪日期以及当前日期何时不再与您的变量匹配,然后您将触发获取新数据的内容。 巴姆! 当然,这不是很可扩展,但对于小游戏来说这很好。

我无法弄清楚如何回答亚历克斯的答案,但我想提一下他们说的话。 当他们说“检查每次有人加载页面时已经过了多少时间”我觉得你不需要在每次加载页面时都检查它。 更好的方法是检查用户何时登录。如果在用户仍然登录时超过24小时,则对于所描述的方案无关紧要。 下次有人登录时,物品的价格会发生变化。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM