Comment le processus de stdin vers stdout en php?
Je suis en train d'écrire un simple script php à prendre dans les données de stdin
, de la traiter, puis de les écrire sur stdout
. Je sais que PHP n'est probablement pas le meilleur langage pour ce genre de chose, mais il y a des fonctionnalités existantes que j'ai besoin.
J'ai essayé
<?php
$file = file_get_contents("php://stdin", "r");
echo $file;
?>
mais ça ne fonctionne pas. Je suis en invoquant comme ceci: echo -e "\ndata\n" | php script.php | cat
. et n'obtenez pas de messages d'erreur. Le script que je suis en train de construire sera effectivement partie d'un plus grand pipeline.
Des indices quant à pourquoi cela ne fonctionne pas?
PS: je ne suis pas très expérimenté en PHP.
OriginalL'auteur brice | 2010-07-14
Vous devez vous connecter pour publier un commentaire.
Si vous êtes à la tuyauterie, vous voulez mettre en mémoire tampon de l'entrée, au lieu de traiter tout à la fois, juste aller à une ligne à la fois comme c'est la norme pour *nix outils.
Le SheBang en haut du fichier vous permet d'exécuter directement le fichier, au lieu d'avoir pour appeler de php en ligne de commande.
Enregistrer la suite de test.php et exécuter
pour voir les résultats.
OriginalL'auteur tylermac
De placer un script php dans un tuyau que vous pouvez utiliser:
Avec le nombre de lignes/args ./myscript.php sera appelé à quelques reprises, mais toujours avec --foo.
par exemple:
va appeler le script deux fois avec de l'écho à stdout/moins:
source
OriginalL'auteur compie
Droit, ai eu de travail.
à partir d'une recette à PHPBuilder.
OriginalL'auteur brice