PHP è principalmente un linguaggio destinato allo scripting server side, cioè alla generazione dinamica di contenuti per le pagine Web; questa caratteristica, ed alcune evidenti limitazioni rispetto ai più comuni linguaggi per la programmazione avanzata, lo rendono uno strumento meno adatto di altri (come ad esempio il Perl) per lo Shell Scripting, cioè per la richiesta di comportamenti da parte del sistema prodotti sulla base di istruzioni digitate tramite interfaccia testuale.
Ciò non vuol dire che PHP sia completamente alieno a questo discorso, anzi, nel corso di questa breve serie di articoli proveremo a descrivere tutti i vantaggi che possiamo ricavare dall'utilizzo associato della CLI (Command Line Interface) e di PHP.
Per eseguire PHP da linea di comando bisogna innanzitutto tenere a mente che non stiamo lavorando come faremmo per le pagine web, quindi nel lancio degli script verranno e dovranno essere eseguite tutte le istruzioni contenute nel codice tranne quelle riferite all'ambiente Web/HTML, quindi l'header HTTP che generalmente viene generato come intestazione dello stream di output non dovrà essere presente.
Prendiamo un semplice listato da processare tramite CLI, un ciclo while andrà benissimo:
<? //variabili $n_mele = 2; $tot_mele = 10; //ciclo while while($n_mele <= $tot_mele) //istruzione { echo "Ho mangiato " .$n_mele. " mele"; echo "posso mangiarne ancora ".($tot_mele - $n_mele)."\n"); //incremento $n_mele++; } ?>Sarà possibile digitare il codice appena descritto direttamente da Shell utilizzando il più diffuso editor di testo disponibile per Konsole in Linux: Vi.
$ php -q while.phpin conseguenza del quale verrà stampato l'output desiderato:
$ php -q test.php Ho mangiato 2 mele, posso mangiarne ancora 8 Ho mangiato 3 mele, posso mangiarne ancora 7 Ho mangiato 4 mele, posso mangiarne ancora 6 Ho mangiato 5 mele, posso mangiarne ancora 5 Ho mangiato 6 mele, posso mangiarne ancora 4 Ho mangiato 7 mele, posso mangiarne ancora 3 Ho mangiato 8 mele, posso mangiarne ancora 2 Ho mangiato 9 mele, posso mangiarne ancora 1 Ho mangiato 10 mele, posso mangiarne ancora 0 $Come avrete avuto modo di notare, per lanciare la CLI da Shell si dovrà utilizzare una sintassi che prevede: