Php 有没有办法使这个随机URL重定向脚本不会重复同一个URL多次?

Php 有没有办法使这个随机URL重定向脚本不会重复同一个URL多次?,php,redirect,random,Php,Redirect,Random,因此,我想在网页中添加一点乐趣或“随机性”,在单击时有一个选项卡,将用户重定向到随机URL。但是,如果用户被重定向到该URL,我希望它不会重复该URL 假设用户1点击“random”,他被带到,但是,他回到我的页面,第二次点击“random”,我希望它把他带到其他地方,而不是返回http:/google.com/如果他第三次返回,他被重定向到也没关系,但我只是不希望它重复相同的网址,如果他们只是访问该网址 这在PHP中是可行的吗?还是比我想的更复杂 这就是我目前的工作:(我根本不懂PHP,这就是

因此,我想在网页中添加一点乐趣或“随机性”,在单击时有一个选项卡,将用户重定向到随机URL。但是,如果用户被重定向到该URL,我希望它不会重复该URL

假设用户1点击“random”,他被带到,但是,他回到我的页面,第二次点击“random”,我希望它把他带到其他地方,而不是返回http:/google.com/如果他第三次返回,他被重定向到也没关系,但我只是不希望它重复相同的网址,如果他们只是访问该网址

这在PHP中是可行的吗?还是比我想的更复杂

这就是我目前的工作:(我根本不懂PHP,这就是我为什么要问的原因)


您可以使用以下会话来完成此操作:

<?php
    session_start();

    function checkUrl($url, $urls){
        if(count($_SESSION['visited']) == count($urls)){
               $_SESSION['visited'] = Array();
        }
        if(in_array($url, $_SESSION['visited'])){
             $url = $urls[array_rand($urls)];
             checkUrl($url, $urls);
        }
        else{
             $_SESSION['visited'][] = $url;
             header("Location: http://$url");
        }
    }
    $urls = array(
        "www.google.com",
        "www.youtube.com",
        "www.facebook.com"
    );
    $url = $urls[array_rand($urls)];
    checkUrl($url, $urls);
?>

编辑:


在访问所有地址时执行重置

我已将其上载到我的服务器,并且在运行了大约3次之后,脚本似乎以白色页面结束,并且没有加载到任何位置。我似乎仍在获取白色页面。不知道是不是只有我一个人。你能参观一下吗?我现在正在工作,不能正确地测试这个,可能是我的输入错误,但它应该可以工作,我现在已经测试了这个,它正在按预期为我工作。。。你是在尝试我上面写的代码,还是在修改它?没有修改它。只是直接拷贝和粘贴。你试过3-4次以上吗?您是否快速执行了这些操作,或者在重新尝试之前至少等待几秒钟?我快速浏览了这些网址,这时我注意到它们停止工作了。对不起,如果我完全没有意义,现在就用手机打字。
<?php
    session_start();

    function checkUrl($url, $urls){
        if(count($_SESSION['visited']) == count($urls)){
               $_SESSION['visited'] = Array();
        }
        if(in_array($url, $_SESSION['visited'])){
             $url = $urls[array_rand($urls)];
             checkUrl($url, $urls);
        }
        else{
             $_SESSION['visited'][] = $url;
             header("Location: http://$url");
        }
    }
    $urls = array(
        "www.google.com",
        "www.youtube.com",
        "www.facebook.com"
    );
    $url = $urls[array_rand($urls)];
    checkUrl($url, $urls);
?>