PHP come shell scripting: gli stream

Nel precedente post ho accennato al fatto che utilizzando il php come linguaggio di shell scripting non sarebbe più stato possibile utilizzare i metodi $_GET e $_POST per lo scambio dati. Le esigenze in questo caso cambiano, non vi è la necessità di passare dei dati da una pagina ad un altra ma quasi sicuramente cè la necessità di interagire con l’utente. Per fare ciò possiamo usare gli stream STDIN, STDOUT e STDERR.

Il modo di usarli è il seguente:

  • si ottiene l’id dello stream: $id_stream=fopen(“/dev/stdin”,”r”);
  • si procede con il leggere i dati: $data = fread($id_strean,255);
  • si chiude lo stream a fine lettura: fclose($id_strean);

il tutto in perfetto stile ANSI C, vi consiglio di rendere il tutto procedurale per la riutilizzabilità del codice, un esempio potrebbe essere:

function input()

{

$id_stream=fopen(“/dev/stdin”,”r”);

$data = fread($id_strean,255);

fclose($id_strean);

return $data;

}

in questo modo possiamo facilmente utilizzarlo ad esempio in questo modo:

echo “\ninserisci il nome da dare al file: “;

$name= input();

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...