【问题标题】:php display next value after some delayphp在一些延迟后显示下一个值
【发布时间】:2013-02-19 17:43:52
【问题描述】:

所以我有一个数组

$super = array(8,9,10,11,12,20,21); 

我想在我的网站上显示一小时的第一个值

一小时后显示第二个,以此类推

数组到达末尾“21”后,它会重置并开始显示第一个值

回声 $super [0]

等一小时$super换成

$super[1]
下一小时
 $super[2] 
等等。

之后

$super == $super[21] 
重置
 $super 到 $super[0] 

我可以使用 next()、current()、reset() 函数,但我不知道如何延迟循环它们。

【问题讨论】:

  • 在第一个页面加载时,将当前的time() 存储到用户的会话中。然后将该值用作时间计算的基准。在$num_hours 小时过去后,执行echo $super[$num_hours];。添加翻转逻辑。
  • $super 数组将始终具有这些值还是可以更改?如果你在这里说你需要做什么,那么有人可能会想出一个解决方案
  • @zamil 值可以改变,数组会得到更多值
  • @nickb 不能为此使用会话
  • 然后使用cookie,需要持久化。除非您希望保持与服务器的开放连接数小时,否则这不仅对大多数共享主机(如果不是全部)来说是不可能的,而且会浪费资源。

标签: php arrays delay next timedelay


【解决方案1】:

享受服务器端静态版本:

$super = array(8,9,10,11,12,20,21); // Array can be extended
$h = date('H') ; //Current hour. Server time

$start_day_element = 0 ; //Offset, from what element days start.

echo $super[($h + $start_day_element)%count($super)] ;

当然,必须刷新页面才能看到更新的值。

【讨论】:

    【解决方案2】:

    尴尬

    用户javascript settimeout用ajax执行js函数

    eg:setTimeout("somefun();", 5000);
    

    其中 5000 是时间延迟

    function somefun(){
        $("#msgSpan").load("site.com/somepage.php");
    }
    

    其中“#msgSpan”是显示数组值的元素的 ID

    在 somepage.php 中实现相应的返回数组值的逻辑

    你可以使用 php 会话来记录当前的数组索引,并且对于每个下一个请求你增加数组索引

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多