Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762

    [PHP & Javascript] Funzione echo vs sleep. Chiarimento.

    Buongiorno a tutti voi,

    dunque, riprendendo una problematica precedente in un'altra discussione nella quale avevo la necessità di recuperare lo screenshot di una pagina web aperta in un altra finestra...ed essendo impossibilitato nell'adottare quella soluzione, ho optato per un'altra (ancora) soluzione:

    Aprire, tramite Php, una "window" Javascript ed operare con la funzione "imagegrabscreen().

    Lo script di base è il seguente:
    Codice PHP:
    <?php

    $jsWin 
    "
    <script>
    x = window.open('http://www.google.it','x','width=1280,height=800');
    setTimeout(function(){
    //    x.close();
    },2000);
    </script>"
    ;

    // La "close" è commentata volontariamente nel codice Javascript

    echo $jsWin;
    sleep(5);

    $image=imagegrabscreen();
    imagepng($image,'immagine.png');
    imagedestroy($image);

    exit();

    ?>
    Problema: perchè la funzione sleep non si fa i fatti suoi stando ferma PRIMA che l'echo venga effettuato?

    No perchè in questo modo lo script PRIMA "dorme"...e poi manda in output l'echo...sfasando il tutto...e facendomi quindi ottenere lo screenshot a pagina bianca.



    Grazie in anticipo.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    qui c'è un problema di comprensione di come "lavora" il php... lo script viene elaborato sul server e l'output è mandato nel buffer che viene "spedito" al browser al termine dell'esecuzione, quindi non puoi ragionare pensando che quando esegui "print" questo è immediatamente visualizzato: NON è così!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Si...c'era proprio un problema di comprensione...si si...


  4. #4
    Originariamente inviato da eiyen
    qui c'è un problema di comprensione di come "lavora" il php... lo script viene elaborato sul server e l'output è mandato nel buffer che viene "spedito" al browser al termine dell'esecuzione, quindi non puoi ragionare pensando che quando esegui "print" questo è immediatamente visualizzato: NON è così!
    Si puo', con flush().

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    volendo è vero che si può usare flush e le altre funzioni correlate, pero... anche flush non invia l'output al browser, ma semplicemente scrive immediatamente nello streaming di uscita l'output (v. flush)... in sostanza NON c'è un comando che possa forzare in qualsiasi situazione l'output a video.

    [php] (1)-> [buffer interno] (2)-> [output] (3)-> [display browser]

    Molti browser bufferizzano cmq le informazioni prima della visualizzazione.

    In pratica usando print siamo nello step "1" e alla fine dello script (o con flush) siamo nel "2"...

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Scusate il ritardo. Vi ringrazio per i chiarimenti e per il tempo dedicato.

    Sono arrivato alla conclusione che aprirò si, la finestra con Javascript. Ma inserirò al suo interno un pulsante o robe simili con focus e relativi codicini Javascript (oppure magari un setTimeout con richiamo a funzione AJAX) che faranno partire un altro script Php con funzione grabscreen per la cattura dello screenshot e le opportune operazioni per manipolare l'immagine e togliere il superfluo catturato e...far andare a finire il tutto dove dico io.

    Un giro un pò così...ma ci vuole.

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    ...mmmh... la butto lì, ma mi sa che vuoi usare imagegrabscreen per uno snapshot del client, ma non potresti come immagini tu...

  8. #8
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762
    Cosa intendi per Client? Lo screenshot si effettua sul mio desktop..appena si apre la finestra faccio partire la funzione..nulla di più

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2004
    Messaggi
    3,709
    intendo... tu stai lavorando sul tuo computer e non in remoto? se è così ok...

  10. #10
    Utente di HTML.it
    Registrato dal
    May 2011
    Messaggi
    762


    Qualcosa mi fa pensare che forse qualcosa andrà storto in produzione..vi terrò aggiornati.

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.