如何在PHP中的for循环中使睡眠函数正确响应

时间:2014-05-14 09:16:49

标签: php audio for-loop delay sleep

我正在编写一个获得八位数字的脚本然后大声读出来。我想要在读出数字之间延迟两秒钟。问题是,即使在用sleep()设置延迟之后,我的所有数字都会被立即读出,这会产生类似召唤的音频,这让我更接近于每次调试都是敌基督徒。这是我的代码。如何让循环执行以便将数字读取为例如2 .... 1 .... 3 .... 4 ....(其中...... = 2秒。)

for($counter=0; $counter<count($dbId); $counter++)
{
    $fileName = array_search($dbId[$counter], $letterArray);
    echo "<audio src='../resources/audio/mp3/'.$fileName.'.mp3' autoplay></audio>";
    echo time() . "<br />";
    sleep(2);
}

2 个答案:

答案 0 :(得分:1)

PHP是一种超文本预处理器。这意味着它的输出不能间歇性地发送到浏览器。

您有两种选择。

  1. 创建所有audio元素而不使用自动播放,并使用setInterval
  2. 使用javascript处理所需的功能
  3. 制作一系列AJAX请求,以便获取启用自动播放功能的下一个audio元素。通过倾听audio完成或再次使用setInterval
  4. 可以触发这些请求

答案 1 :(得分:0)

您对睡眠的理解不正确。睡眠延迟了PHP脚本,延迟了 来自服务器的响应,但您提供的结果网页将完全相同 有无睡眠。加载只需要更长的时间。你无法从php控制它 你必须以某种方式在客户端上这样做。例如,请查看this question