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

    eseguire programmi background in php

    Ciao,
    sto cercando di far eseguire un programma in background in php.
    Vi posto il codice di esempio:
    function runAsynchronously()
    {
    sleep(10);
    return $i=1;

    }

    system( runAsynchronously(), $return);

    nauturalmente questo è solo un esempio.


    Quello che non riesco a capire come fare è come far in modo che lanciata la funzione io posso continuare a navigare o eseguire altri comandi.

  2. #2
    devi usare ajax....ajax è un linguaggio asincrono, quindi una volta lanciato un comando puoi continuare a navigare all'interno di un'applicazione, quando la funzione in background ha finito il suo lavoro il risultato ti viene restituito, in base a come hai programmato l'handler (la funzione che gestisce il risultato di una chiamata Ajax)
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  3. #3
    secondo me ci deve essere un modo per far girare degli script in background senza usare ajax...

  4. #4
    Originariamente inviato da tricotraco
    secondo me ci deve essere un modo per far girare degli script in background senza usare ajax...
    PHP non supporta i thread.

    Per far eseguire del codice "in background" devi avviare un altro processo. Puoi farlo tramite exec() e funzioni simili, oppure richiamando lo script tramite il browser (es. Ajax, file_get_contents(), etc.)

  5. #5
    In ambiente Windows

    ... bene prorio quelo che mi serviva... io richiamo il browser tramite exec per inviare una mail di avviso, ma non posso inviare più di una mail, perchè:

    - il browser non si chiude automaticamente (almeno io non ci sono riuscito, alla chiusura automatica mi chiede sempre conferma, ma se sono lontano dal server non posso rispondere)
    - ogni volta che si ripete lo scritp php che mi farebbe partire il browser nelle volte successive alla prima non parte perchè il browser è gia aperto.

    la riga dello script di controllo, lanciato da shell dei comandi con operazione pianificata, è:
    exec(sprintf("explorer %s", "http://192.168.0.44/Automatismi/AllarmeTemperatura.php"));

    Quindi chiedo:
    - Come posso avviare dallo stesso script PHP più sessioni del browser?
    - Come posso chiudere il browser senza che mi chieda la conferma?

    Grazie in anticipo per la risposta.

  6. #6
    o usi javascript via browser (vedasi ajax/ahah) oppure usi i fork, ma non so se è conveniente farlo da un processo del web server

    inoltre i fork su windows mi pare non ci siano proprio
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    324
    novità in questa discussione?

    la cosa interesserebbe anche a me.....
    Ho la sindrome di Peter Pan, le manie di persecuzione...se sapessi suonare uno strumento sicuramente avrei anche un complesso.

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.