Domanda:
Script Php avvio automaticamente?
Andrea
2013-07-23 01:11:42 UTC
salve ho uno script che ho creato in php e dovrei avviarlo ogni ora automaticamente
questo è il codice se avete esempi sarebbero molto utili!
$var=fopen("$luog.txt","a+");
$scrivi="".$hora." ".$day."Temperatura ".$params["temp"]."°C Umidità".$params["um"]."% Dewpoint".$params["dp"]."°C Vento ".$params["vent"]."".$params["wkm"]." ".$params["wdire"]." Pioggia oraria".$params["rainh"]."mm Pioggia giornaliera".$params["rain"]."mm>";
fwrite($var, $scrivi);
Tre risposte:
Andrea
2013-07-24 01:01:50 UTC
Ciao, siccome a volte settare un cronjob può essere un problema (il provider non te lo fornisce, non hai accesso al pannello di controllo etc.) ti presento una soluzione "alternativa".



In sostanza basta controllare che il dato che riguarda l' ultima modifica del file non restituisca un intervallo di tempo superiore ad un' ora.

In caso affermativo lo script viene eseguito altrimenti no.



Ovviamente non vengono avviati processi, quindi bisogna che qualcuno visiti la pagina per effettuare l' operazione, ma nella maggior parte degli scenari questo non è un problema.



ecco il codice:



// calcola la differenza tra il timestamp attuale e quello modifica del file

if (time()-@filemtime("$luog.txt") > 1 * 3600) {



$var=fopen("$luog.txt","a+");

$scrivi="".$hora." ".$day."Temperatura ".$params["temp"]."°C Umidità".$params["um"]."% Dewpoint".$params["dp"]."°C Vento ".$params["vent"]."".$params["wkm"]." ".$params["wdire"]." Pioggia oraria".$params["rainh"]."mm Pioggia giornaliera".$params["rain"]."mm>";

fwrite($var, $scrivi);



}







Se invece hai bisogno di qualcosa di più complesso che possa emulare un cronjob, questo è uno script davvero utile:



http://www.bitfolge.de/index.php?option=com_content&view=article&id=61%3Aphp&catid=38%3Aeigene&Itemid=59&limitstart=3



permette di fare praticamente le stesse cose di un vero cronjob, utilizza la sintassi UNIX può essere lanciato usando come trigger delle immagini e genera addirittura un log...
2013-07-23 12:51:50 UTC
Come già detto i crontab su Unix sono il metodo migliore per automatizzare l'esecuzione di qualsiasi programma quindi da linea di comando basterebbe un bel:



sudo crontab -e



e poi nel file che ti si apre basterebbe aggiungere una stringa come questa



* */1 * * * php /path/del/file/php/file.php



in questa maniera lo script si avvierà senza problemi. Da quello che vedo lo script dovrà essere in stallato dentro un qualche dispositivo portabile altrimenti non ne vedo la reale utilità ma se comunque lo script finirà invece in uno spazio web a pagamento spesso i provider offrono servizi di



scheduling: Aruba

o CronJob: CPannel



Direttamente via Web con dei form facilmente utilizzabili.



Delle guide utili le trovi qui:



Operazioni Pianificate con aruba: http://adf.ly/SgCBK

Usare i CronJob su Cpannel: http://adf.ly/SgCHU
Rayden
2013-07-23 10:24:04 UTC
Per poter schedulare l'esecuzione di uno script php (o script in genere) su sistemi UNIX puoi utilizzare il crontab, per sistemi windows il Task Scheduler.

Ti rimando a due guide che dovrai seguire per comprendere il funzionamento di entrambe.



UNIX crontab: http://www.thegeekstuff.com/2011/07/php-cron-job/

WIN Task Scheduler: http://www.imranulhoque.com/miscellaneous/install-php-scripts-as-cron-in-windows/


Questo contenuto è stato originariamente pubblicato su Y! Answers, un sito di domande e risposte chiuso nel 2021.
Loading...