如何在服务器上的特定时间后运行PHP函数?

时间:2018-11-13 13:25:11

标签: php

我有一个将新博客帖子添加到我的数据库中的功能。

运行 add_new_post() 函数后,该帖子应由我的另一个函数 approve_post() 批准。

但是我不想立即批准该帖子。我想在1 to 5 minute (random)之间的时间运行 approve_post() 函数。

现在我正在使用此代码:

function add_new_post() {
    *my code of adding post*

    $time = rand(60, 300);
    echo $time;
    sleep($time);

    approve_post();
}

但是浏览器显示加载,直到睡眠结束。另外,我发现我的Windows计算机显示时间执行错误。

有没有一种方法可以在后台运行approve_post()函数,而不会显示页面加载到浏览器中?

我要感谢一个代码示例。

2 个答案:

答案 0 :(得分:0)

有多个选项。

您可以使用打开页面所需的ajax,也可以使用Cron作业。我会更喜欢使用Cron作业

例如,概念将相同。帖子表必须包含created_dateapprove_dateapprove_status。因此,当您创建帖子时,它也将保存approve_date

例如,您在18:00上创建了一个帖子,然后approve_time18:05。然后,后台进程(ajax或Cron作业)将首先检查approve_status,然后在实时时间与approve process相同的情况下执行approve_time

ref:cron jobAjax

对不起,我的英语

答案 1 :(得分:0)

首先,您需要使用以下链接maximum execution

来增加PHP脚本的https://www.plus2net.com/php_tutorial/max-ex.php时间

然后使用sleep()函数将代码执行延迟为:

<?php
echo date('H:i:s');
sleep(15);
flush();
echo "<br>";
echo date('H:i:s');
?>

Reference link

或者您可以CronJob