我需要每分钟将另一个网站加载到我的浏览器中。网站的网址保存在数组中。 我不想使用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。
答案 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
。