venerdì 27 ottobre 2017

Eseguire script php da riga di comando dos

Oggi vediamo una cosa un po' particolare, ovvero come fare per eseguire uno script php da riga di comando dos, ovvero dal prompt dei comandi di windows o da shell linux.

Ma perchè mai voler fare una cosa del genere?
Semplice, ad esempio questa cosa può tornare utile nel caso si voglia fare un file batch bat da far girare in automatico da sistema operativo.
Mettiamo ad esempio di voler schedulare sul nostro pc o sul server windows (e non), uno script php che compie alcune operazioni (ad esempio spedire email collegandosi a mysql), quello che dobbiamo fare è richiamare il nostro script da prompt dei comandi, e salvare il tutto in un file .bat.
Vediamo subito come fare.


Come eseguire script php da riga di comando dos


Ecco la sintassi da utilizzare nel prompt dei comandi di windows, cmd.exe:

php script.php

php da riga di comando

Ovviamente qui sto semplificando al massimo, dato che per poter lanciare i comandi in questo modo, occorre aver prima mappato il php.exe come path di windows (leggere questo post per sapere come fare), oppure è anche possibile lanciare il comando inserendo entrambi i path completi, ad esempio così:

C:\wamp64\bin\php\php5.6.25\php C:\wamp64\www\php\eventi\script.php

Bene, ora volendo si può anche salvare il tutto in un file di testo e rinominarlo come script.bat, per poterci cliccare poi sopra con il mouse ed eseguire in automatico il nostro script php, che in autonomia svolgerà tutte le azioni per cui è stato programmato.


Eseguire script php da riga di comando passandogli parametri


Eseguire uno script php da riga di comando potrebbe non essere sufficiente, se non gli si passa alcun parametro in maniera dinamica.
Vediamo dunque come fare per lanciare una pagina php da riga di comando passandogli parametri.

Ecco la sintassi da utilizzare per il passaggio di php parameters allo script:

php script.php variabile1=valore1 variabile2=valore2...

Così facendo avremo passato al nostro script php, tramite riga di comando, alcuni parametri / variabili.
Quello che però bisogna poi fare è, intercettare questi parametri nella pagina di destinazione.
Ecco la sintassi da utilizzare:

<?php
parse_str(implode('&', array_slice($argv, 1)), $_GET);
$id=trim($_GET["id"]);
?>

Ed ecco che nella nostra php avremo intercettato la chiamata fatta con tutti i parametri passati (l'id in questo esempio).
Non ho altro da aggiungere su questa storia

Piaciuto l'articolo? Lascia un commento!

EmoticonEmoticon