Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46

    stampa durante l'esecuzione di un ciclo

    ciao a tutti, il mio problema è questo:
    ho una funzione con un 'echo' all'inizio e uno alla fine che stampano due messaggi 'inizio' e 'fine', quando chiamo la funzione però non viene visualizzato subito il messaggio 'inizio' ma solo alla fine dell'esecuzione del codice, assieme al messaggio 'fine'.

    se poi chiamo la funzione da un ciclo, gli echo non vengono stampati durante l'esecuzione della funzione ma tutti insieme alla fine ..qualcuno sà spiegarmi il motivo e magari come fare per aggiornare la stampa a video al ripetersi di ogni ciclo???
    grazie

  2. #2
    dovresti postare un po' di codice per capire di cosa stai parlando...
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46
    ecco il codice, questa funzione ha lo scopo di chiamare una pagina in php, eseguire alcune modifiche sul contenuto(preso come stringa di testo) e poi salvare il tutto come pagina html.
    vorrei che i due echo all'inizio e alla fine venissero stampati a video durante l'esecuzione del codice e non 'tutti insieme alla fine'...

    function replica($id,$ver){

    echo "Salvataggio in corso di $nomefile - id $id - in versione $ver ....";

    $indirizzopagina = "http://indirizzo/pagina.php?id=".$id."&ver=".$ver;
    $contenuto = file_get_contents($indirizzopagina);

    //esegue una serie di operazioni sul contenuto e poi salva una pagina html

    //compone il percorso di salvataggio del file
    $indirizzo = "temp/".$ver."/".$nomefile.".html";
    //verifica se il file esiste già nella cartella di salvataggio
    if (file_exists($indirizzo)) {
    unlink($indirizzo);
    file_put_contents($indirizzo,$contenuto);
    } else {
    file_put_contents($indirizzo,$contenuto);
    }
    echo "ok
    ";
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Perchè la echo non invia immediatamente il risultato al browser, ma lo mette in un buffer che poi viene inviato tutto insieme
    Se vuoi "svuotare" il buffer e inviarlo al browser, mentre il resto dell'elaborazione continua devi usare la funzione flush()

    http://it2.php.net/manual/it/function.flush.php

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2004
    Messaggi
    46
    ok perfetto....
    ho provato con flush() e ora funziona proprio come volevo io

    Grazie1000..

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.