Окно обновления PHP? эквивалент перезагрузки страницы F5?

есть ли что-нибудь в PHP, что эквивалентно ручному нажатию кнопки перезагрузки страницы F5? Мой PHP-скрипт находится в фрейме и не является родительским скриптом, но ему нужно обновить всю страницу, а не только фрейм.

10 ответов


С PHP вы просто можете обрабатывать серверные вещи. Что вы можете сделать, это распечатать это в своем iframe:

parent.window.location.reload();

на самом деле это возможно:

Header('Location: '.$_SERVER['PHP_SELF']);
Exit(); //optional

и он перезагрузит ту же страницу.


Если у вас есть текст перед

header('Location: http://www.example.com/youformhere.php');

у вас будут проблемы, потому что это должно быть отправлено до отправки любого другого текста на страницу.

попробуйте использовать этот код вместо

<?php 
$page = $_SERVER['PHP_SELF'];
echo '<meta http-equiv="Refresh" content="0;' . $page . '">';
?>

просто помните, что этот код создаст и бесконечный цикл, поэтому вам, вероятно, придется внести в него некоторые условные изменения.


PHP не может заставить клиента что-либо сделать. Он не может обновить страницу, не говоря уже об обновлении родительского фрейма.

EDIT: вы можете, конечно, сделать PHP писать JavaScript, но это не делает PHP, это на самом деле JavaScript, и он потерпит неудачу, если JavaScript отключен.

<?php
    echo '<script>parent.window.location.reload(true);</script>';
?>

<?php 
echo "<script>window.opener.location.reload();</script>";
echo "<script>window.close();</script>";
?>

С php вы можете использовать два перенаправления. Он работает так же, как refresh в некоторых проблемах.

вы можете использовать редирект страницы.php и опубликуйте свой последний url-адрес с помощью метода GET (например). затем в перенаправление.php вы можете изменить заголовок на местоположение, которое вы отправили ему методом GET.

такой: страницы:

<?php
header("location:redirec.php?ref=".$your_url);
?>

редирект.на PHP:

<?php
$ref_url=$_GET["ref"];
header("location:redirec.php?ref=".$ref_url);
?>

это сработало для меня хорошо.


использовать JavaScript для этого. Вы можете сделать:

echo '
<script type="text/javascript">
   parent.window.location.reload(true);
</script>
';

в PHP, и он обновит страницу фрейма родителя.


думаю, вы могли бы повторить мета тег для этого обновить через регулярные промежутки времени ... как

<meta http-equiv="refresh" content="600" url="your-url-here"> 

все, что вам нужно сделать, чтобы вручную обновить страницу, чтобы предоставить ссылку на той же странице

такой: Обновить выделение


добавление следующего в заголовок страницы работает для меня:

<?php

if($i_wanna_reload_the_full_page_on_top == "yes")
{
$reloadneeded = "1";
}
else
{
$reloadneeded = "0";
}

if($reloadneeded > 0)
{
?>
<script type="text/javascript">
top.window.location='indexframes.php';
</script>
<?php
}else{}
?>