PHP Gestione di input e output


Esempio

Quando vengono eseguiti dalla CLI, le costanti STDIN , STDOUT e STDERR sono predefinite. Queste costanti sono handle di file e possono essere considerati equivalenti ai risultati dell'esecuzione dei seguenti comandi:

STDIN = fopen("php://stdin", "r");
STDOUT = fopen("php://stdout", "w");
STDERR = fopen("php://stderr", "w");

Le costanti possono essere utilizzate ovunque sia un handle di file standard:

#!/usr/bin/php

while ($line = fgets(STDIN)) {
    $line = strtolower(trim($line));
    switch ($line) {
        case "bad":
            fprintf(STDERR, "%s is bad" . PHP_EOL, $line);
            break;
        case "quit":
            exit;
        default:
            fprintf(STDOUT, "%s is good" . PHP_EOL, $line);
            break;
    }
}

Gli indirizzi del flusso incorporato di cui si fa riferimento in precedenza ( php://stdin , php://stdout e php://stderr ) possono essere utilizzati al posto dei nomi di file nella maggior parte dei contesti:

file_put_contents('php://stdout', 'This is stdout content');
file_put_contents('php://stderr', 'This is stderr content');

// Open handle and write multiple times.
$stdout = fopen('php://stdout', 'w');

fwrite($stdout, 'Hello world from stdout' . PHP_EOL);
fwrite($stdout, 'Hello again');

fclose($stdout);

In alternativa, è possibile utilizzare anche readline () per l'input e per l'output è anche possibile utilizzare echo o print o qualsiasi altra funzione di stampa di stringhe.

$name = readline("Please enter your name:");
print "Hello, {$name}.";