Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184

    ob_start + include + flush non va come dovrebbe

    Ciao a tutti,
    ho la necessità di catturare il contenuto di una pagina che mi ritorna alcuni parametri nell'html, questi parametri variano modificando il ?param=x nella url, la x la prendo da un DB, come bell'esempio...

    $mySQL = "SELECT x FROM tabella 0, 1000";
    $RS = mysql_query($query,$conn) or die ("Impossibile eseguire la query " . mysql_error());
    while ($row = mysql_fetch_array($RS)) {
    ob_start();
    include("http://www.sitoweb.com/pagina.php?param=1");
    $pagina .= ob_get_contents();
    ob_end_clean();
    echo $pagina;*/
    + ();
    }
    il problema è che lo script non arriva fino a 1000 ma in genere si ferma a 89,90 max 110

    pensavo fosse un problema di timeout e lo ho impostato a 0 cosi

    ini_set("max_execution_time", 0);
    ma niente da fare...
    qualke idea?


    Stefano

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    nessun suggerimento?

  3. #3
    Utilizzare in questo modo ob_ è inutile. ob_ serve per non inviare niente al browser anche se ci sono degli echo, dei print o cmq qualunque cosa da inviare al browser. Tu, rendi vano l'utilizzo di tali funzioni. Mi fai vedere il contenuto di pagina?

    Cmq dovresti fare qualcosa del genere:

    Codice PHP:
    $output '' ;
    $mySQL "SELECT x FROM tabella 0, 1000";
    $RS mysql_query($query,$conn) or die ("Impossibile eseguire la query " mysql_error());
    ob_start();
    while (
    $row mysql_fetch_array($RS)) {
    include(
    "http://www.sitoweb.com/pagina.php?param=1");
    $output .= $pagina // Il contenuto del file pagina.php
    }
    echo 
    $output ;
    ob_end_flush() ; 
    In pagina tutti gli output non verranno mostrati tramite echo ma verranno accodati alla variabile $pagina che viene a sua volta accodata alla var $output alla fine di ogni ciclo. Quando il ciclo finisce la varaibile $output viene stampata a video.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    Ciao mircov,
    la pagina inclusa contiene solo una stringa di test con scritto il valore di x, ti rigrazio per il suggerimento e ti chiedo se è possibile fare in modo che $output si aggiorni di volta in volta e non mi mostri solo il risultato finale dello script?

  5. #5
    Per prima cosa non avevo notato che tu includi il file dall'esterno (cioè passando da internet) mentre lo devi includere impostando il percorso del file sul server).

    In secondo luogo la var $output non dovrebbe mostrare solo l'ultimo risultato visto che io ho scritto $output .= $pagina

    Il punto serve proprio per concatenare la stringa a fine variabile! Mi sembra strano che venga mostrato solo l'ultimo risultato!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    ok va bene adesso allora lo metto in piedi definitivamente, secondo te il fatto ke viene richiamato un server esterno potrebbe dare dei problemi?


    Stefano

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    Originariamente inviato da mircov
    Utilizzare in questo modo ob_ è inutile. ob_ serve per non inviare niente al browser anche se ci sono degli echo, dei print o cmq qualunque cosa da inviare al browser. Tu, rendi vano l'utilizzo di tali funzioni. Mi fai vedere il contenuto di pagina?

    Cmq dovresti fare qualcosa del genere:

    Codice PHP:
    $output '' ;
    $mySQL "SELECT x FROM tabella 0, 1000";
    $RS mysql_query($query,$conn) or die ("Impossibile eseguire la query " mysql_error());
    ob_start();
    while (
    $row mysql_fetch_array($RS)) {
    include(
    "http://www.sitoweb.com/pagina.php?param=1");
    $output .= $pagina // Il contenuto del file pagina.php
    }
    echo 
    $output ;
    ob_end_flush() ; 
    In pagina tutti gli output non verranno mostrati tramite echo ma verranno accodati alla variabile $pagina che viene a sua volta accodata alla var $output alla fine di ogni ciclo. Quando il ciclo finisce la varaibile $output viene stampata a video.

    Scusa da dove recuperi il content di $pagina?
    Stefano

  8. #8
    Io da nessuna parte! Ti ho scirtto a fianco che quella var contiene il contenuto di pagina.php.

    Mi spiego meglio. tu includi il file pagina.php che eseguirà alcune operazioni (a tal proposito sarebbe meglio creare una funzione ed includerla un'unica volta anzichè includere ogni volta il file). Queste operazioni porteranno alla valorizzazione di una var che io ho chiamato $pagina ma che tu devi sostituire con la variabile effettivamente creata dal file.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2004
    Messaggi
    184
    ok quindi dovrbbe essere cosi...

    $output = '' ;
    $pagina = '';
    $mySQL = "SELECT x FROM tabella 0, 1000";
    $RS = mysql_query($query,$conn) or die ("Impossibile eseguire la query " . mysql_error());
    ob_start();
    while ($row = mysql_fetch_array($RS)) {
    include("http://www.sitoweb.com/pagina.php?param=1");
    $pagina = ob_get_contents();
    $output .= $pagina; // Il contenuto del file pagina.php
    }
    echo $output ;
    ob_end_flush() ;
    mi puoi fare un esempio se non è questo ke intendi?

    anke della funzione eventualmente :-D


    Stefano

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.