我正在使用FOR循环从数组发送电子邮件[250]。
for ($counter = 0; $counter <= 250; $counter ++){
// send email function[$counter]
}
我考虑过sleep()函数,但由于服务器有限制执行时间不是一个选项。 请帮帮我!
答案 0 :(得分:1)
要延迟在循环中发送电子邮件,您可以创建自己的wait()函数,其中包含一个循环并在迭代之前调用它。如果你想等待的原因是为了避免ISP的问题,那么请阅读这个SO答案:
答案 1 :(得分:0)
如果没有某种调度程序,您总是会达到执行限制。 您可能希望将电子邮件存储在数据库中,然后让cron执行它们。
或者你可以延长执行时间:
<?php
//replace 600 without how many seconds you need
ini_set('max_execution_time', 600);
... loop through emails
?>
为什么你还要延迟它们呢?
答案 2 :(得分:0)
显然(未经测试)睡眠功能控制远离php,因此最大执行时间不适用。
来自:http://www.hackingwithphp.com/4/11/0/pausing-script-execution
“请注意,默认的最大脚本执行时间是30秒,但是您可以使用sleep()和usleep()来使脚本继续运行的时间更长,因为技术上PHP在睡眠操作期间无法控制。”
答案 3 :(得分:-1)
使用cron - 几乎所有主机都允许你使用它(除了免费主机),如果你需要帮助,他们应该非常乐意帮助你进行设置(如果他们不帮助你,不要给他们你的钱)