每隔X秒执行一次PHP循环

时间:2014-12-06 07:58:53

标签: php loops timer

我有用户输入他们希望按$ time变量

定义发送消息的频率

这是我现在拥有的循环代码

$time = $_POST["time"];

for ($x = 0; $x < $amount; $x++) {
    mail($completenum, $subject, $message, $headers);
    sleep($time);

}

此代码的问题是消息永远不会被发送,我相信这是因为sleep函数会停止脚本。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

PHP并不是真正的语言,你想尝试javascript或类似的。

PHP旨在让您在加载页面时动态构建页面。通过在那里睡一觉,你会延迟页面的加载时间,服务器和/或浏览器最终会超时 - 预计页面加载时间过长,并且通常表示错误。不同的浏览器会做不同的事情,如果延迟很长,你需要修改所有内容的超时设置。

在浏览器中继续运行的脚本语言将能够按照您的需要定期启动,甚至更新页面 - 您希望代码在页面加载后继续执行。

或者,如果您只想要PHP,那么您的PHP代码可以将请求存储在数据库中,然后您可以进行另一次处理&#39;您在后台定期使用cron作业或类似作业的页面,它会按时间延迟发送电子邮件。有一些方法可以通过PHP实现您想要的功能,具体取决于您之后的实际最终结果,但将sleep()置于这样的页面加载中不太可能是一个可靠的解决方案。