我有问题存储在我的数据库中。我想每隔 24 小时自动从数据库中定期在我的网站上发布一个问题。有没有办法我可以做到这一点?
9 回答
您可以通过以下步骤执行此操作:
- 创建将发布您的问题的普通 PHP 脚本。
- 使用标准操作系统调度程序调度您的脚本。它是*nix的cron (也存在 Win 版本)或 Windows 的AT。要定义特定的时间间隔 - 您应该阅读调度程序的手册(此处
cron
提供格式)
示例(cron)
0 2 * * * /usr/bin/php /path/to/insert/script.php
- 在这种情况下,每天在02:00 AM
cron 将尝试执行命令/usr/bin/php /path/to/insert/script.php
- 即,如果您script.php
将从数据库中提取您的问题并发布它 - 这将做的事情。
是的你可以。我将简要概述两种最常见的解决方案。困难在于 PHP 不是一个始终运行的程序,而是一种按请求执行然后在完成时关闭的语言。
- 在您的网络服务器上有某种 init.php 文件,该文件包含在每个页面中。该脚本将检查自上一个问题以来是否已过时间,并推送一个新问题。
- 另一方面,您可以添加一个 cronjob,它将执行您的 php 脚本来推送问题。此解决方案更强大,但需要访问您可能没有的网络服务器。
创建一个 php 文件,将代码从您的数据库中获取问题,然后设置 cronjob 以在特定时间执行该文件,或者您也可以通过包含您的登录名或任何其他页面来执行文件,该文件首先包含该 php 文件文件,以便当第一个用户登录它将执行。
是的,您可以使用 Cron job 来做到这一点。设置时间间隔和您的文件脚本位置。它会在该时间间隔内自动命中您的脚本。
如果您可以创建一个 PHP 脚本来每次选择不同的问题,那么您需要做的就是设置一个 cron 来每 24 小时运行一次 PHP 脚本。您可以在此处找到有关 cron 的更多信息。
您应该查看 MySQL 日期函数。
一个人为的例子是使用CURDATE():
SELECT * FROM questions WHERE publish_date = CURDATE()
存储publish_date
遗嘱意味着您可以在该日期到来时动态加载问题。
正确执行此操作的唯一方法是使用 cron 作业。您应该查看托管服务的管理面板。
编写一个脚本,每天在您的网站上发布一个问题,并设置一个 cron 作业以每天运行一次该脚本,然后您就完成了。
如何设置cron作业,问你主机服务商,大部分主机在cpanel都有这个功能
脚步
创建一个 PHP 脚本以随机选择和发布特定问题。
在您的主 php 脚本中编写一个 AJAX 方法(它将加载PHP 脚本),可以
setInterval()
使用以下语法调用该方法 -setInterval("AJAX_fun()", 24*3600*1000);
该语句将以 24 小时为周期调用 AJAX 函数。为此,您必须了解 AJAX。我的意思是 AJAX 的主体应该是什么来加载你必须知道的 PHP 脚本。
另一种选择
您可以使用 javascriptsetInterval()
函数简单地重新加载页面
即<script>setInterval("window.location.reload()", 24*3600*1000);</script>
在此之前,您必须使用 PHP 逻辑从数据库中随机选择一个问题。