繁体   English   中英

我怎么能用计时器运行PHP脚本?

[英]How can i run php script with timer?

我有foreach打印学生姓名的功能

$names = array("Alex","Brad","Tom");
foreach($names as $name) {
   echo "$name <br />";
   sleep(3);
}

如何打印每个名称,每3秒钟? "echo $name"我需要一些计时器来停止循环并等待3秒钟。 sleep()函数在这里不起作用。 我还能做什么?

你不能做这个服务器端(可靠)。 这是因为在途中保持或缓冲流量的可能性太大了:通过网络服务器,沿途的代理,浏览器等等。然而,它可能适用于CLI。

因此,我肯定会在客户端进行,而不会牺牲安全性(如果需要)。

如果这只是为了“美化”的目的,你可以创建一个AJAX方法,它将返回名称数组,然后让Javascript输出它们的计时器。

或者,您可以让AJAX使用计时器调用PHP脚本,PHP将只返回一个名称。 它可以将当前时间戳保存在DB或Session变量中,并且在经过一段时间后才会返回新名称。

尝试使用刷新功能

ob_start();    
$names = array("Alex","Brad","Tom");
foreach($names as $name) {
   echo "$name <br />";
   ob_flush();
   flush();    
   sleep(10);
}

你可以用javascript,ajax来做到这一点

或者使用flush()函数

<?php
$names = array("Alex","Brad","Tom");
foreach($names as $name) {
   echo "$name <br />";
   flush();
   sleep(3);
}

工作演示

如果您需要在网页中执行此操作,则需要刷新输出或禁用输出缓冲以使其工作。 一些参考:

在php CLI中,代码将起作用。

你可以写flush(); echo之后

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM