Una shell in PHP

20 marzo 2006

Introduzione

Il php è nato nel 1994, in forma molto embrionale rispetto a come lo conosciamo oggi, ma fondamentalmente come linguaggio di scripting per il web. Da allora sono state rilasciate diverse versioni e da alcune ormai il php può essere utillizzato anche per la realizzazione di script e programmi di tipo standalone (cioè funzionanti senza l’ausilio di un server web) sia a linea di comando (prompt dos o shell) sia a interfaccia grafica (php-gtk). L’obiettivo di questo articolo è quello di analizzare proprio la scrittura di script funzionanti da linea di comando.

Utilità

La principale utilità di questo tipo di programmazione è ovviamente quella di utilizzare un linguaggio semplice e ricco di funzionalità come il php (basti pensare alle varie librerie per immagini, Pdf, connessione ai database) per creare programmi in tempi relativamente brevi.
Chi dispone di un server linux ad esempio conosce di sicuro l’utilità di tutta una serie di script ad hoc che automatizzino quei compiti ripetitivi necessari al buon funzionamento di un server.
Pensiamo ad esempio ad uno script che comprima determinate directory scelte da noi e le spedisca per posta elettronica come backup. Uno script del genere può essere scritto anche con il codice specifico della shell. Ma perchè non scriverlo in un linguaggio che già ci è familiare (e che per di più è multipiattaforma?).

Funzionamento di base

Esistono due versioni diverse di php capaci di eseguire script da linea di comando: CGI e CLI.
La versione CGI non è stata creata specificatamente per l’esecuzione di codice indipendente da server e browser quindi di default genererà errori con tag html, avrà un tempo di esecuzione limitato seguendo esattamente le direttive impostate nel php.ini (che se non specificato diversamente potrebbe anche essere quello utilizzato direttamente per il web).
La versione CLI diversamente è stata pensata per la shell, quindi ha attivate di default delle opzioni più “funzionali” a questo diverso ambito come ad esempio la soppressione di header in output.

La versione trattata in questo articolo è la CLI, uscita in forma sperimentale con php 4.2.0 e in versione stabile con php 4.3.0. Nella distribuzione binaria di windows questo eseguibile si dovrebbe trovare nella cartella di installazione di php con il nome di php-cli.exe per quanto riguarda le versioni 4.2.x e in una cartella /cli in quella di installazione con il nome di php.exe per le versioni 4.3.x.
Nella versione linux compilata da sorgenti (salvo cambio di directory da parte dell’utente in fase di compilazione) l’eseguibile si dovrebbe trovare come /usr/bin/php ed essere richiamabile semplicemente come “php” da console.
Per determinare la versione di cui disponete dovete richiamare questo eseguibile passando il parametro “-v”.

Il codice proposto resta comunque funzionante anche per la versione CGI, anche se consiglio caldamente il passaggio a versione CLI dove possibile.

Se vuoi aggiornamenti su Una shell in PHP inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Una shell in PHP

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy