使用PHP刷新页面

Aan*_*Aan 128 php refresh

如何定期使用PHP刷新页面?如果我不能通过PHP做到这一点,那么推荐的最佳方案是什么?

小智 234

你可以用PHP做到这一点:

header("Refresh:0");
Run Code Online (Sandbox Code Playgroud)

它会刷新您当前的页面,如果您需要将其重定向到另一个页面,请使用以下命令:

header("Refresh:0; url=page2.php");
Run Code Online (Sandbox Code Playgroud)

  • 使用*0*将持续锤击您的服务器和/或本地缓存,尤其是如果您在页面上有图像.如果你只需要在屏幕上更新信息,比如股票价格,但不是在表格或javascript中使用这些信息,也许可以使用*iframe*标签指向只有更新信息的页面,并且适当延迟如何*当前*信息*必须*. (5认同)
  • *Refresh* 不是官方标头,但自 Netscape Navigator 以来,许多浏览器都支持它。这意味着您必须进行测试以确保您的受众使用支持的浏览器。 (2认同)
  • 这会导致 ["Headers already sent" 错误](http://stackoverflow.com/questions/8028957/how-to-fix-headers-already-sent-error-in-php) 在我的代码中......还有另一个道路? (2认同)

Abo*_*esh 105

PHP中,您可以使用:

$page = $_SERVER['PHP_SELF'];
$sec = "10";
header("Refresh: $sec; url=$page");
Run Code Online (Sandbox Code Playgroud)

或者只使用JavaScript window.location.reload().

  • 你可以做到这两点,虽然我不想等待:`header("Location:".$ _ SERVER ['PHP_SELF']);` (6认同)
  • 关于此解决方案的说明:如果您的站点正在实现某种好的路由或URL重写(即默认情况下几乎任何框架),您可能会发现`$ _SERVER ['PHP_SELF']`为您提供真正的脚本路径,而不是实际的您在浏览器中看到的网址.在这种情况下,请尝试使用`$ _SERVER ['REQUEST_URI']`. (4认同)
  • Yazana标头('Location:')用于将用户重定向到任何url,您无法使用它刷新页面。 (2认同)
  • Pratik。你错了。您确实可以使用header(“ refresh:”)刷新页面 (2认同)

131*_*131 16

您确定可以使用PHP定期刷新页面:

<?php
    header("refresh: 3;");
?>
Run Code Online (Sandbox Code Playgroud)

这将每三秒刷新一次页面.


Kam*_*esh 15

这很简单,可以在php中使用header()

header('Refresh: 1; url=index.php');
Run Code Online (Sandbox Code Playgroud)


Mat*_*ght 11

建立在content声明中.如果需要刷新,请回显:

<meta http-equiv="refresh" content="5">
Run Code Online (Sandbox Code Playgroud)

请参阅元刷新.

编辑

正如@warren所指出的,上面的代码会立即刷新页面.您可以使用contentvall 设置时间

  • 是的,我正在评论这个答案:总是有改进的余地.而你是对的,你可以设置`content`等于任何值在几秒钟内 - 我的评论仍然值得注意,0秒的刷新可能不是你想要的:) (3认同)
  • 这将每0秒刷新一次 - 可能不是你想要的:) (2认同)
  • @Mathlight 和其他抱怨延迟评论的人。仅仅因为您可能已经继续前进,未来的读者可能刚刚经历过这个问题,而您的回答/评论以及任何延迟提出的质疑可能仍然与他们相关。 (2认同)

小智 11

我发现了两种刷新PHP内容的方法:

1.使用HTML META:

echo("<meta http-equiv='refresh' content='1'>"); //Refresh by HTTP 'meta'
Run Code Online (Sandbox Code Playgroud)

2.使用PHP REFRESH RATE:

$delay = 0; // Where 0 is an example of a time delay. You can use 5 for 5 seconds, for example!
header("Refresh: $delay;"); 
Run Code Online (Sandbox Code Playgroud)

  • `//通过HTTP META刷新=>`//按HTML META刷新`这看起来像是从上面复制的答案. (2认同)

Ben*_*est 6

header('Location: .');似乎会刷新 Chrome、Firefox、Edge 和 Internet Explorer 11 中的页面。