PHP显示url并重定向到下一个循环

时间:2014-03-10 13:47:13

标签: php jquery

我有数组[1, 2, 55, 76, ...]

我生成网址

www.example.com/id/1
www.example.com/id/2
www.example.com/id/55
...

问题:如何显示每个网址几秒钟(3秒)并重定向到下一个网址?

我的想法:使用iframe / jQuery

我对想法/代码/建议持开放态度。

2 个答案:

答案 0 :(得分:1)

这是一个JS解决方案。所有URI都由PHP写入数组,然后JS间隔循环遍历它们:

var urls = ['www.example.com/id/1','www.example.com/id/2','www.example.com/id/55'];

var current = 0;
var interval = window.setInterval(function(){
    document.getElementById('container').innerHTML = urls[current];
    current += 1;
        if(!urls[current]) {
        window.clearInterval(interval);
    }
}, 1000);

在PHP方面,第一行看起来像这样($uris是一个包含所有URI的数组):

echo "var urls = ['".implode("','", $uris)."']";

这是JSFiddle example

答案 1 :(得分:1)

一个非常简单的JS实现就是:

var interval = (function(iframe)
{
    var idx = 0,//current idx
        urls = <?= json_encode($urlArray); ?>;//array of urls
    iframe.src = urls[idx++];//set first url
    return setInterval(function()
    {//callback function, will be executed every 3 seconds
        iframe.src = urls[idx++];
        if (idx >= urls.length)
        {//we've just reached set last url
            idx = 0;//this resets the loop, after 3 seconds, the first url is used again
            //alternatively
            clearInterval(interval);//end of the loop
        }
    }, 3000);//3000 miliseconds, or every 3 seconds
}(document.getElementById('yourIframeID')));//pass reference to your iframe here

这一行:

<?= json_encode($urlArray) ?>

当然是一个PHP语句,并且必须运行服务器端,如果你不能从PHP改变JS,你可以通过ajax调用获取url

Fiddle example

小提琴遍历网址两次,然后只是终止间隔,iframe.src语句已被注释掉,因为小提琴使用div,但你得到了基本的想法