Creare un Loop

  • Creatore Discussione Creatore Discussione ivarello
  • Data di inizio Data di inizio

ivarello

Utente Attivo
14 Dic 2012
211
1
16
Ragazzi mi sto scervellando nel tentativo di creare un loop mi spiego vorrei che venga lanciata una funzione per 5 minuti di continuo, ho provato con vari esempi tipo:
PHP:
<html>
<body>

<?php
$i=1;
while($i<=5)
  {
  echo "The number is " . $i . "<br>";
  $i++;
  }
?>

</body>
</html>
Ma non fa al caso mio, qualcuno sa come mandare una funzione ( intendo proprio una function() { non un echo ......)in loop per un tot di tempo e non di times(volte)?
 
ciao
se non ho capito male potresti provare così, il ciclo while dovrebbe continuare sino a che non sono passati 5 minuti.
anche se non so a cosa ti serva perchè il ciclo in pratica "ferma" lo script per i minuti impostati (ti ricordo che php è lato server), quindi per 5 minuti l'utente aspetta senza vedere nulla
tra l'altro devi allungare il tempo di vita dello script che di defaul è 30 secondi
PHP:
<?php
$ini=time();//tempo iniziale in secondi
$fine=time();//tempo finale in secondi
while(((int)($fine-$ini)/60)<= 5){//porto a minuti
	//quello che vuoi fare
	$fine=(time();//aggiorno tempo finale in secondi
}
?>
 
ciao Borgo, si lo so che è lato server l'utente infatti viene mandato su una pagina con countdown ;) praticamente la funzione a 5 minuti per verificare ;) ora provo e ti dico grazie come sempre
P.s. che intendi quando dici che devo allungare la vita dello script?
 
Borgo scusa lo so che mi uccidi ma non ho capito un tubo hehehehe
PHP:
<?php 
$ini=time();//tempo iniziale in secondi <-----devo inserire qualcosa qui perchè praticamente mi restituisce l'orario odierno così
$fine=time();//tempo finale in secondi <------qui è lo stesso 
while((int)($fine-$ini)/60)<= 5){//porto a minuti 
    //quello che vuoi fare 
    $fine=time();//aggiorno tempo finale in secondi 
} 
?>
Lo so che mi sgriderai ma abbi pazienza
 
ciao
time() restituisce la data in timestamp espressa in secondi
quindi quando parti (scrivo numero a caso)
$ini = 1213456 == $fine => ($fine-$ini)/60 = 0
quindi il while inizia a ciclare ed a ogni ciclo aggiorna $fine
dopo 1 minuto avrai
$ini = 1213456 (non varia)
$fine = 1213516
quindi ($fine-$ini)/60 = (1213516-1213456)/60 = (60)/60 = 1
e così via sino a quando la differenza/60 diventa maggiore di 5

dimenticavo
non serve che tu metta nulla, da quello che ho capito devi far passare 5 minuti
 
Ultima modifica:
ciao
sleep(300);
ma non è solo l'attesa dice che deve far fare la stessa operazione in quei 5 minuti, per quello avevo messo il ciclo
 

Discussioni simili