Visualizzazione dei risultati da 1 a 5 su 5

Discussione: echo in tempo reale

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    27

    echo in tempo reale

    Salve ragazzi, sto realizzando un progetto in php e siccome le operazioni che deve effettuare da quando il server riceve la richiesta a quando spedisce la risposta ci mettono circa 20 secondi ho bisogno di ricevere degli echo a mano a mano che il server le esegue senza che faccia il buffer e mi mandi tutto alla fine. Come devo fare?
    grazie per le eventuali risposte

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Non poui fare, PHP restituisce un output solo ad operazioni terminate.

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    27
    ok grazie per la risposta mi dovrò accontentare dell'output che mi restituisce

  4. #4
    Originariamente inviato da Alhazred
    Non poui fare, PHP restituisce un output solo ad operazioni terminate.
    Tu dici ?

    Codice PHP:
    <?php
    ini_set
    ('implicit_flush',1);
    ob_implicit_flush();

        function 
    Flusha() { 
            
    ob_flush();
            
    flush();
        }
        
        echo 
    'Primo ciclo -> ';
        
        
        for(
    $i=0;$i<10;$i++) {
              echo 
    $i;
              echo 
    str_repeat(" "500);
              
    Flusha();
              
    sleep(1);
        }
        
        echo 
    '
    '
    ;
        echo 
    'Secondo Ciclo -> ';
        
        
    Flusha();
        
        for(
    $i=0;$i<10;$i++) {
              echo 
    $i;
              echo 
    str_repeat(" "500);
              
    Flusha();
              
    sleep(1);
        }
    ?>

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2008
    Messaggi
    27
    Originariamente inviato da tecnolive
    Tu dici ?

    Codice PHP:
    <?php
    ini_set
    ('implicit_flush',1);
    ob_implicit_flush();

        function 
    Flusha() { 
            
    ob_flush();
            
    flush();
        }
        
        echo 
    'Primo ciclo -> ';
        
        
        for(
    $i=0;$i<10;$i++) {
              echo 
    $i;
              echo 
    str_repeat(" "500);
              
    Flusha();
              
    sleep(1);
        }
        
        echo 
    '
    '
    ;
        echo 
    'Secondo Ciclo -> ';
        
        
    Flusha();
        
        for(
    $i=0;$i<10;$i++) {
              echo 
    $i;
              echo 
    str_repeat(" "500);
              
    Flusha();
              
    sleep(1);
        }
    ?>
    ho provato il tuo codice e funziona ma solo dopo 10 secondi (in pratica il primo ciclo mi arriva tutto in una volta mentre il secondo arriva come dovrebbe), perchè?

    EDIT: mi correggo con opera funziona... è colpa del browser...

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.