假设我有一个PHP游戏,这是一个赚钱的游戏,每天市场上的物品价格都会发生变化。
我如何制作,以便每天自动更新数据库中的价格?我会在服务器上安装一个程序来检测它何时运行24小时然后运行一个PHP文件进行更新?或者os有另一种方式吗?
编辑: 事情是伙计,我实际上并不拥有我从托管公司租用的服务器所以我真的没有访问命令行:s
谢谢Stanni
答案 0 :(得分:8)
假设您使用的是Unix系统,则应设置每日cronjob。为此,请运行“crontab -e”并输入如下内容:
9 21 * * * /path/to/your/script
这将每天21:09运行。
答案 1 :(得分:4)
如果您无法访问命令行,可以将1x1图像添加到调用php脚本的网站,该脚本会检查是否需要更新某些内容。
类似
<img style="width: 1px; height: 1px; visibility: hidden" src="cron.php">
在cron.php中,检查数据是否需要更新。
答案 2 :(得分:4)
由于您可能无法访问cron,我会做的是检查每次有人加载页面时已经过了多少时间。如果已经过了24小时,则调用您的更新功能。如果已经过了48小时,那就打两次电话。如果没有人加载页面,那么更新函数是否被调用并不重要,因为没有人在看;)
或者您可以在家中设置一台计算机,每24小时远程调用您的update.php。您可以使用cron作业和wget执行此操作,或者如果您使用的是Windows,则可以使用任务计划程序。
我认为第一种选择将是最好的。每次加载页面时调用更新功能,仅在24小时标记过后才更新。如果你正确地写它,它是否在确切的24小时标记更新并不重要。
答案 3 :(得分:3)
您想要设置“cron作业”,或者以您设置的特定间隔运行的PHP文件。
查看this article了解详情。
关于cron作业的最佳部分是,您不仅限于存储过程中可用的一小部分功能。你可以使用你喜欢的任何逻辑! :)
答案 4 :(得分:3)
使用webcron :) http://www.webcron.org/index.php?lang=en
或者这是一个很好的清单: http://www.onlinecronservices.com/
答案 5 :(得分:2)
如果您有一个更新价格的脚本,而您想要做的就是每天运行,请使用Cron(linux)或at command(windows)。
答案 6 :(得分:1)
我认为您可以创建一个在每次访问页面时调用的函数,并验证是否发生了更新,检查数据库。
所以在一个快速的伪代码中:
function verify_often(){
if (last_update_in_db() != today() ){
update_db();
run_periodic_function();
}
return 0;
}
这种方法只需要经典的PHP&amp; MySQL组合。
答案 7 :(得分:1)
你怎么能'无法访问命令行'?我想不出任何不允许ssh访问的主机。访问cron是一个不同的故事,但他们也应该允许这样做。如果他们不这样做 - 找一个新的主人!
答案 8 :(得分:1)
忘记这一切。没有理由这样做。
您需要做的就是每次有人拨打网页时进行检查。您可以跟踪日期以及当前日期何时不再与您的变量匹配,然后您将触发获取新数据的内容。巴姆!当然,这不是很容易扩展,但它适用于小型游戏。
答案 9 :(得分:0)
我无法弄清楚如何回答亚历克斯的答案,但我想提一下他们说的话。当他们说“检查每次有人加载页面时已经过了多少时间”我觉得你不需要在每次加载页面时都检查它。更好的方法是检查用户何时登录。如果在用户仍然登录时超过24小时,则对于所描述的方案无关紧要。下次有人登录时,物品的价格会发生变化。