Stavo per risponderti che non era cosi facile ma pensandoci sopra.
Per vedere come funziona, prima prova cosi com'è. Lo script scrive 'testo' per 4 secondi ma siccome ho messo un delay di 2 secondi deve apparire la pagina test9351b.php.
Poi rimpiazzi il pippo(2) con pippo(12) per esempio. Apri una nuova pagina e incolli l'indirizzo. Dovresti vedere una marea di testo.
PS : Sviluppato in poco tempo. Quindi è una bozza e nient'altro.
Tutti i print o echo devono essere fatti usando $a->print.
Se altri hanno altre idee sono interessato.
Codice PHP:
<?php
class pippo {
private $time;
private $delay;
function __construct($delay) {
$this->delay = $delay;
$this->time = new DateTime('NOW');
}
function print($string) {
print $string;
$now = new DateTime('NOW');
$diff = $now->diff($this->time);
if ($diff->s >= $this->delay) {
header("location:test9351b.php");
}
}
}
$a = new pippo(2);
//--- Inizio bufferizzazione (TASSATIVO)
ob_start();
// simulazione di una pagina che si carica in 4 secondi ma con un delay di 2 secondi
$d1 = new DateTime('NOW');
$end = false;
while (!$end) {
$a->print('testo<br/>');
$now = new DateTime('NOW');
$diff = $now->diff($d1);
if ($diff->s >= 4) {
$end = true;
}
}
//--- Fine bufferizzazione (TASSATIVO) => Invio dei dati al browser
ob_end_flush();
file : test9351b.php
Codice PHP:
<?php
print "tempo scaduto";