-
Salve a tutti, oggi ho commesso un pasticcio:
ho creato una pagina php contenente questo script:
$w = 0 ;
while ( true ) {
$w ++ ;
flush () ;
sleep ( 1 ) ;
$file = fopen("file.time","w");
fputs($file,"$w");
fclose($file);
}
come vedete viene creato un ciclo infinito che apre un file ad ogni secondo e ci scrive dentro i secondi passati.
Ero convinto che uscendo dalla pagina contenente lo script questo si interrompesse comunque ma a quanto pare non è così perchè il server continua ad aprirlo e a scriverci di continuo.
Come posso rimediare?
-
Dovrebbe esistere l'apposita funzione break per uscire dal ciclo.
Cercala su www.php.net.
In alternativa cambia la condizione di entrata del ciclo.
-
Il guaio è che io quella pagina l'ho tolta dal sito, e il server una volta partito non si è fermato più!
il break o cmq la funzione di stop dove la vado a mettere?
-
Dopo 21591 secondi il ciclo si è fermato
evidentemente qualche timeout del server è scaduto!
Buono a sapersi!
Ciao!!!
-
ma il php non ha il timeout dopo 30 secondi?
-
è quello che pensavo anche io!Infatti provandolo in locale il ciclo si ferma dopo 30 secondi.
evidentemente i server di altervista hanno impostazioni diverse!
-
probabilmente e' perche' sul server il tempo di esecuzione e' decisamente maggiore e se si pensa a coloro viaggiano con un nefasto 28 k il tempo di interpretazione di una pagina php complessa superebbe il tempo limite per il time-out
-
Il tempo di esecuzione di una pagina php da parte del server non dipende dalla velocità di connessione dell'utente; il server ricevuta la richiesta di una pagina php la interpreta e poi ne manda l'output html al browser dell'utente.
La velocità di connessione dell'utente influisce solo nello scaricamento dell'output html inviato dal server nonappena questo ha eseguito lo script contenuto nella pagina. :wink: