Ecco qui. Naturalmente è solo un esempio (simile ad uno che avevo trovato in rete). Dovrai modificare le azioni da compiere e i vari cicli, ma dovrebbe/potrebbe funzionare...
Io l'avevo elaborato in maniera pesante, ma alla fine mi ha dato soddisfazioni.
Codice PHP:
<?php
ob_implicit_flush(); # abilita il "flush" automatico
set_time_limit(0); # imposta il limite massimo di lavoro dello script ad "infinito" (in teoria)
ignore_user_abort(true); # forzerà lo script a girare anche al termine della connessione
function doSomething() {
$file = 'test.txt';
# azione iniziale
@file_put_contents($file, 'start test');
while(!connection_aborted()) {
# stampiamo a video qualcosa così PHP "capisce" se la connessione col browser è ancora in corso
echo " ";
# ora PHP verifica la connessione
# flush(); # decommentare nel caso ob_implicit_flush() non funzionasse come dovrebbe
# pausa di un secondo prima della ripetizione del ciclo
sleep(1);
}
# questa operazione verrà effettuata soltanto quando la connessione col browser non sarà più attiva
@file_put_contents($file, 'end test');
return true;
}
doSomething();
?>