2016-04-27 5 views
0

Я написал следующий код, чтобы обновить страницу и напечатать случайное число, но я не понимаю его логики.php header function working

<!DOCTYPE html> 
<html> 
<head> 
    <title>Random Refresh</title> 
</head> 

<body> 

<h1>Random refresh</h1> 

<p>page is refreshed every 5 seconds </p> 

<br> </br> 

<p>Radom number between 10 to 100 is : 

<?php 

echo(rand(10,100)); 
header("Refresh: 5; url=randomRefresh.php"); 

?> 

</p> 


</body> 
</html> 

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

Итак, как функция заголовка обновляет/перенаправляет страницу?

ли выходная страница html файла php использует неявный запрос Ajax?

Что происходит под капотом?

+0

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

+0

Что вы не понимаете? ** Выполнение PHP **? Сначала код будет печатать эти ** HTML **, затем 'echo', а затем обновление. Что не так? –

+0

Вы можете проверить функцию заголовка php http://php.net/manual/en/function.header.php –

ответ

0

Функция "Refresh: 5; url=randomRefresh.php" выполнена с учетом стороны браузера. Функция PHP headers() выполняется на стороне сервера

header() в PHP просто устанавливает дополнительный или существующий заголовок, который отправляется в браузер клиента при загрузке страницы, но Refresh: 5; url=randomRefresh.php интерпретируется браузером клиента, чтобы обновить страницу через 5 секунд. Другие примеры заголовков, как status, которые могут быть 200, 301, 302, 404.

0

Это выполняется один раз, как страница нагрузки, но, чем есть код, как

header("Refresh: 5; url=randomRefresh.php"); 

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

0

Вы можете использовать <meta http-equiv="refresh" content="5; url=randomRefresh.php" />

header("Refresh: 5; url=randomRefresh.php"); 

будет по ошибке, если что-то напечатано на странице, прежде чем быть вызов.

Так что, если ваше имя страницы refresh_page_every_5_second.php, то ваш код будет выглядеть

<!DOCTYPE html> 
<html> 
<head> 
    <title>Random Refresh</title> 
    <meta http-equiv="refresh" content="5; url=refresh_page_every_5_second.php" /> 
</head> 
<body> 
<h1>Random refresh</h1> 
<p>page is refreshed every 2 seconds </p> 
<br> </br> 
<p>Radom number between 10 to 100 is : 
<?php 
echo(rand(10,100)); 
//("Refresh: 5; url=randomRefresh.php"); 
?> 
</p> 
</body> 
</html> 
+0

Сообщите мне, что все сделано или нет @ user1567935 –