Je veux faire quelque chose comme ça:
$ [mysql query that produces many lines] | php parse_STDIN.php
Dans parse_STDIN.php
fichier Je veux pouvoir analyser mes données ligne par ligne depuis stdin.
utilisez STDIN
constant comme gestionnaire de fichiers.
while($f = fgets(STDIN)){
echo "line: $f";
}
Remarque: fgets sur STDIN lit le \n
personnage.
Vous pouvez également utiliser un générateur - si vous ne savez pas quelle sera la taille du STDIN.
Nécessite PHP 5> = 5.5.0, PHP 7
Quelque chose dans le sens de:
function stdin_stream()
{
while ($line = fgets(STDIN)) {
yield $line;
}
}
foreach (stdin_stream() as $line) {
// do something with the contents coming in from STDIN
}
Vous pouvez en savoir plus sur les générateurs ici (ou une recherche Google pour les didacticiels): http://php.net/manual/en/language.generators.overview.php