如何每分钟加载一个新网址,网址存储在数组中

时间:2019-02-19 09:59:58

标签: javascript php cron

我需要每分钟将另一个网站加载到我的浏览器中。网站的网址保存在数组中。 我不想使用sleep函数,因为它会停止脚本。 当前不会加载首页。如何使用Java脚本或cron作业执行此操作?

<?php
$pages = ["http://www.google.com", "http://www.amazon.de"];

foreach ($pages as $page) {
  header("Location: $page");
  sleep(5);
}   

实际上,它应该加载google.com,一分钟后它应该加载amazon.com。

3 个答案:

答案 0 :(得分:1)

不能。 HTTP不能那样工作。

您可以从请求的URL重定向到另一个URL,但是浏览器将转到新的URL,为时已晚,无法发送与原始URL不同的重定向。

我能想到的唯一方法就是按照您希望的方式在框架中显示循环页面,并使用客户端JavaScript间隔更改其src。只有在显示的页面没有阻止X-Frame-Options进行构图的情况下(http://www.google.com才会这样做)。

答案 1 :(得分:0)

是的,仅使用PHP不能实现此目的,您必须使用javascript在客户端重新加载页面 以下代码可能会对您有所帮助,您可以在其中使用数组索引重定向到同一页面,然后在iframe中加载网页。

<?php
    $i = isset($_GET['index']) ? $_GET['index'] : 0;
    $pages = ["https://www.google.com", "https://www.amazon.de"];
    echo $i ."--". count($pages);
    if($i < count($pages)) {
?>
<iframe src="<?php echo $pages[$i];?>"></iframe>
<script type="text/javascript">
    setTimeout(function(){ alert("Hello");
    window.location.href = "http://localhost/reload.php?index=<?php echo ++$i;?>"; }, 30000);

</script>
<?php
} else {
    echo "All Done."
}
?>

希望这对您有帮助!

答案 2 :(得分:0)

PHP是服务器端。这意味着,当客户端使用浏览器连接到服务器时,您的PHP脚本会生成要显示的内容,并且每个请求仅执行一次。

Javascript是客户端。这意味着您的浏览器将运行脚本。但是,在更改当前查看的站点的url之后,您将没有任何电源,因为它会加载自己的javascript脚本(如果有)。

您可以通过frames来实现自己的目标(但是您列出的网站并不frame友好,无论如何它们都将重定向至自身,因此您在首次加载时将失去控制)或通过浏览器plugin,这更加复杂,用户必须先安装plugin