Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在每次迭代的foreach循环中重复php sleep方法_Javascript_Php - Fatal编程技术网

Javascript 在每次迭代的foreach循环中重复php sleep方法

Javascript 在每次迭代的foreach循环中重复php sleep方法,javascript,php,Javascript,Php,我必须为不同的问题向不同的客户发送大约1k封电子邮件。通常我会得到一个excel文件,里面有发送电子邮件所需的所有信息。我有一个web表单,在其中插入票号,并检索发送邮件所需的信息(excel文件中也提供了这些信息)。问题在于,在表单中插入1k票号是一项费时费力的工作。因此,我复制了发送电子邮件所生成的链接,并创建了1k个链接,其中包含发送1k封不同电子邮件所需的特定变量。现在我要做的就是生成一个php函数来打开所有链接,工作就完成了。但是,邮件服务器不允许一次从同一IP发送超过20封电子邮件。

我必须为不同的问题向不同的客户发送大约1k封电子邮件。通常我会得到一个excel文件,里面有发送电子邮件所需的所有信息。我有一个web表单,在其中插入票号,并检索发送邮件所需的信息(excel文件中也提供了这些信息)。问题在于,在表单中插入1k票号是一项费时费力的工作。因此,我复制了发送电子邮件所生成的链接,并创建了1k个链接,其中包含发送1k封不同电子邮件所需的特定变量。现在我要做的就是生成一个php函数来打开所有链接,工作就完成了。但是,邮件服务器不允许一次从同一IP发送超过20封电子邮件。它将电子邮件标记为垃圾邮件并阻止IP。我尝试了一个
foreach
循环,其中包含php sleep函数,但它不起作用。函数在给定的时间内休眠,然后立即打开所有给定的链接。我想声明,该功能将从我的笔记本电脑上运行,不会上传到任何服务器或其他任何地方

以下是我目前拥有的功能:

$emails = ["http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
//testing with these links instead of the email links
foreach($emails as $key => $email){

    $mail = "<script type='text/javascript' language='Javascript'>window.open('".$email."','_blank');</script>";
    sleep(5);
    echo $mail; 
}
$emails=[”http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
//使用这些链接而不是电子邮件链接进行测试
foreach($key=>$email形式的电子邮件){
$mail=“window.open”(“$email.”,“\u blank”);
睡眠(5);
echo$邮件;
}
任何帮助或暗示都将不胜感激, 提前感谢

$emails=[”http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
$emails = ["http://www.facebook.com","http://www.tuttojuve.com","http://www.google.com"];
?>

<script>
    var linksToOpen = <?php echo json_encode($emails); ?>;
    var currentLink = 0;

    setInterval(function(){
        window.open(linksToOpen[currentLink++], '_blank');
        /* browser popup blocker may block this window so add window url to allowed list. */
    }, 5000); 
    /* every x millisecond */
</script>
?> var linksToOpen=; var-currentLink=0; setInterval(函数(){ 打开(linkstopen[currentLink++],'u blank'); /*浏览器弹出窗口拦截器可能会阻止此窗口,因此将窗口url添加到允许列表中*/ }, 5000); /*每x毫秒*/
使用cron作业如何?如何一次打开所有链接?@Goudelalfy它会休眠5秒钟,然后在不同的选项卡中一次打开所有链接。第一次之后不会执行sleep方法。从代码中看,您正在打开带有链接的新窗口,对吗?如果这是正确的,您应该使用JavaScript而不是php在特定时间间隔后打开新窗口,获取json数组中的所有链接,并通过JavaScript循环它们;这个解决方案有效。但是,可以进行一个简单的改进,因为在完成数组中的所有链接后,函数将继续打开新的空选项卡。除此之外,干得好,谢谢:)