Executar comando de 5 em 5 segundos em página PHP

tonebiclas

Power Member
Boas pessoal, estou com mais um problema...

O que preciso de saber é como executar um bloco de comandos de 5 em 5 segundos automaticamente numa página PHP...

O bloco de comandos é este:

Código:
<?
if (!$abrir=fopen("tome.txt","r+"))
{
echo "Impossovel abrir o ficheiro";
} else {
for($valor>=1;$valor<=50;$valor++)
{
$formula=$valor*1024;
echo @fgets($abrir,$formula);
?>
<br>
<?
}
}
fclose($abrir); 
?>
Desde já obrigado a todos, cumps ;)
 
Última edição pelo moderador:
Continuo a não perceber bem, mas se o que queres é ter o resultado dessa página actualizado a cada 5 segundos, o ideal é usares AJAX.
Javascript -> XMLHttpRequest + setInterval :P
 
ei, isso já é muito desenvolvido para mim...

começei com o PHP á pouco tempo, e fora o PHP só sei Pascal e Visual Basic

não há maneira de fazer isso em PHP ?
 
O PHP é uma linguagem server-side. Para poderes actualizar qualquer informação do cliente, tem de ser ele a "pedir" essa actualização.
A única forma que conheço de um cliente normal poder comunicar com o servidor sem ter de fazer reload à página é usando AJAX.

Eu já te mostro um exemplo...

index.htm:
Código:
<html>
<head>
<script type="text/Javascript">
var xmlHttp
function actualizar() {
 xmlHttp=GetXmlHttpObject()
 if (xmlHttp==null) {
  alert ("O browser não suporta AJAX")
  return
 } 
 var url="servidor.php?query=timestamp&sid="+Math.random()
 xmlHttp.onreadystatechange=stateChanged
 xmlHttp.open("GET",url,true)
 xmlHttp.send(null)
}
function stateChanged() {
 if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete") {
  document.getElementById("ajax").innerHTML=xmlHttp.responseText
 }
}
function GetXmlHttpObject() {
 var xmlHttp=null;
 try {
  // Firefox, Opera 8.0+, Safari
  xmlHttp=new XMLHttpRequest();
 } catch (e) {
  // Internet Explorer
  try {
   xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
   xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
 }
 return xmlHttp;
}
</script>
</head>
<body>
Exemplo de AJAX<hr>
<div style="background-color: #DDDDDD; padding: 20px;">
<span id="ajax"><span>
</div>
<script type="text/Javascript">setInterval("actualizar()", 5000)</script>
</body>
</html>

servidor.php:
PHP:
<?php
echo htmlentities("Última actualização: " . date("m-d-Y H:i:s"));
?>

Grava estes dois ficheiros juntos na mesma pasta (acessível pelo apache) e abre o index.htm no browser.

Depois troca o servidor.php pelo PHP que mostraste no primeiro post :P
 
Última edição:
muito obrigado Kayvlim, mas queria insistir mais no PHP, e então fazer um botão para actualizar?
não estou a ver como farei um botão para executar aquele bloco de código...alguma sugestão?

mais uma vez obrigado.
 
Última edição pelo moderador:
Sempre que quiseres comunicar com o servidor sem actualizares a página, só podes fazer uma de duas coisas: AJAX por XMLHttpRequest, ou AJAX via uma IFrame. Ambos envolvem Javascript (como, aliás, o termo "AJAX" indica - Asynchronous Javascript And Xml)

Senão, só se o botão actualizar a página inteira.

O PHP não pode fazer nada quanto a isso.
 
Back
Topo