PHP/Cli: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Ramac (discussione | contributi)
+ eseguire un comando
Ramac (discussione | contributi)
completamento pagina - avanzamento 100%
Riga 83:
 
== Input e output ==
Abbiamo visto finora come ottenere un input tramite i parametri passati eseguendo lo script; e se volessimo invece ottenere input durante l<nowiki>'</nowiki>''esecuzione'' del programma? In questo caso dobbiamo ragionare un po' come un programmatore in C, per il quale ottenere input e output non consiste in altro che leggere o scrivere sugli '''''stream''''' ('''flussi'''), trattabili come dei file.
 
In PHP esistono tre flussi di input/output:
{| {{Prettytable}}
!Flusso
!Corrisponde a
!Nome del file
|-
|Input standard (sola lettura)
|Immissione da tastiera
|<code>php://stdin</code>
|-
|Output standard
|Console/terminale
|<code>php://stdout</code>
|-
|Errore standard
|Console o registro di sistema
|<code>php://stderr</code>
|}
 
Per leggere o scrivere su questi file usiamo le funzioni <code>fwrite</code> e <code>fgets</code>, aprendo all'inizio dello script i file tramite <code>fopen</code>:
<source lang=php>
//all'inizio apro il flusso...
$stdin = fopen('php://stdin', 'r');
//codice su codice...
echo "inserisci il tuo nome";
$nome = trim(fgets($stdin, 100));
if (!(is_string($nome)) { //è per esempio un numero
$stderr = fopon('php://stderr', 'w');
fwrite($stderr, 'Errore: il nome deve eseere una stringa');
}
</source>
 
[[Categoria:PHP|Command Line Interpreter]]
{{avanzamento|100%}}