Reputation: 12890
How can I refresh a page using PHP periodically? If I can not do it by PHP, what is the best recommended scenario?
Upvotes: 211
Views: 1417048
Reputation: 107
Add the following function to your project:
function redirect($filename) {
if (!headers_sent())
header('Location: '.$filename);
else {
echo '<script type="text/javascript">';
echo 'window.location.href = \''.$filename.'\';';
echo '</script>';
echo '<noscript>';
echo '<meta http-equiv="refresh" content="0;url=\''.$filename.'\'" />';
echo '</noscript>';
}
exit();
}
function call:
redirect($_SERVER['REQUEST_URI']);
Upvotes: 1
Reputation: 6653
Besides all the PHP ways to refresh a page, the page will also be refreshed with the following HTML meta tag:
<meta http-equiv="refresh" content="5">
See Meta refresh - "automatically refresh the current web page or frame after a given time interval"
You can set the time within the content
value.
Upvotes: 19
Reputation: 819
One trick is to add a random number to the end of the URL. That way you don't have to rename the file every time. E.g.:
echo "<img src='temp.jpg?r=3892384947438'>"
The browser will not cache it as long as the random number is different, but the web server will ignore it.
Upvotes: 0
Reputation: 1558
header('Location: .');
seems to refresh the page in Chrome, Firefox, Edge, and Internet Explorer 11.
Upvotes: 7
Reputation: 1131
Adding this meta tag in PHP might help:
echo '<META HTTP-EQUIV="Refresh" Content="0; URL=' . $location . '">';
Upvotes: 1
Reputation: 351
I've found two ways to refresh PHP content:
1. Using the HTML meta
tag:
echo("<meta http-equiv='refresh' content='1'>"); //Refresh by HTTP 'meta'
2. Using 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;");
Upvotes: 20
Reputation: 107
Echo the meta
tag like this:
URL is the one where the page should be redirected to after the refresh.
echo "<meta http-equiv=\"refresh\" content=\"0;URL=upload.php\">";
Upvotes: 3
Reputation: 664
That is simply possible with header() in PHP:
header('Refresh: 1; url=index.php');
Upvotes: 19
Reputation: 1012
PHP is server-side language, so you can not refresh the page with PHP, but JavaScript is the best option to refresh the page:
location.reload();
The visit Location reload() method.
Upvotes: -1
Reputation:
You can do it with PHP:
header("Refresh:0");
It refreshes your current page, and if you need to redirect it to another page, use following:
header("Refresh:0; url=page2.php");
Upvotes: 390
Reputation: 1385
You sure can refresh a page periodically using PHP:
<?php
header("refresh: 3;");
?>
This will refresh the page every three seconds.
Upvotes: 21
Reputation: 130
You can refresh using JavaScript. Rather than the complete page refresh, you can give the contents to be refreshed in a div. Then by using JavaScript you can refresh that particular div only, and it works faster than the complete page refresh.
Upvotes: 1
Reputation: 1716
In PHP you can use:
$page = $_SERVER['PHP_SELF'];
$sec = "10";
header("Refresh: $sec; url=$page");
Or just use JavaScript's window.location.reload()
.
Upvotes: 126
Reputation: 21856
You cannot do it in PHP. Once the page is loaded, PHP dies and is out of control.
You have a few options:
<meta http-equiv="refresh" content="5">
I think that the refresh meta tag is the easiest and most convenient.
Upvotes: -2