Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    ob_flush: sì in locale, no in remoto

    Ciao a tutti!
    Tramite la funzione ob_implicit_flush() posta alla prima riga del codice sono riuscito a fare quello che volevo: mandare progressivamente in output una serie di informazioni stampate in un ciclo for.

    Il problema arriva quando metto online lo script: non funziona più il flusso.

    Ho pensato fosse un problema specifico di quella funzione, allora ho convertito il tutto con ob_start(), ob_flush() e flush() ma ahimè ancora tutto come prima.

    A questo punto credo sia un'impostazione del server che "impedisce" in qualche modo il buffering: è possibile secondo voi?

    Nota: in locale funziona senza problemi con Opera e Firefox 3


    Ringrazio in anticipo per la collaborazione

  2. #2
    Che web server stai utilizzando?
    Come è configurato l'output buffering?

  3. #3
    Ciao Filippo, sto usando un server linux su un hosting gratuito con Php 5.
    Ho configurato il mio output buffering in un modo simile (non riporto il codice, solo l'idea concettuale):

    codice:
    <?php //info, include e altre piccole verifiche ?>
    
    <html>
    <head>...</head>
    <body>
    ...
    <?php
    //altre cosine
    
    for (...) {
    
    ob_start();
    
      for(...) {
    
         for(...) {
    
         }
    
      }
    
    ob_flush();
    flush();
    
    }
    ?>
    ...
    </body>
    </html>
    Spero di essere stato abbastanza chiaro.
    La configurazione iniziale prevedeva, ribadisco, un semplice ob_implicit_flush(true) come prima riga.

  4. #4
    OK raga, provato anche su un altro dominio a pagamento e nemmeno lì funziona.
    Provo a vedere se qualcosa non è settato nel php.ini:

    Codice PHP:
    <?php echo ini_get('implicit_flush'); ?>
    Risultato? Nessuno
    Come se non esistesse quel valore nel php.ini :berto:

    Questo vale per tutti e due gli hosting su cui ho sperimentato

  5. #5
    Studiati questo codice:

    Codice PHP:
    <?php echo(false); ?>
    E, se hai ancora dei dubbi, utilizza:

    Codice PHP:
    <?php var_dump(ini_get('implicit_flush')); ?>

  6. #6
    Non sono sicuro di dove tu mi voglia portare, ma un echo(false) non stampa nulla

    Avendo dubbi ho utilizzato il secondo comando, il cui risultato è

    codice:
    string(0) ""
    in quanto .... inesistente ....

  7. #7
    Tra inesistente e valorizzato a "" oppure false c'è un po' di differenza.

    Infatti:

    Codice PHP:
    <?php 
    ini_set
    ('implicit_flush'false);
    var_dump(ini_get('implicit_flush')); 
    ?>

  8. #8
    Niente da fare, qualunque sia il suo valore (inizialmente falso) e in qualunque modo lo si setti (1 o vero) non funziona.
    Ho provato anche con script minimali ma i risultati non cambiano.

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.