Je sais que PHP est généralement utilisé pour le développement web, où il n'y est pas de l'entrée standard, mais PHP prétend être utilisable comme un langage de scripting général, si vous ne suivez funky web à base de conventions. Je sais que PHP imprime stdout
(ou ce que vous voulez l'appeler) avec print
et echo
, ce qui est assez simple, mais je me demandais comment un script PHP peut obtenir l'entrée d' stdin
(spécifiquement fgetc()
, mais de toute fonction d'entrée est bonne), ou est-ce même possible?
Réponses
Trop de publicités?
techtonik
Points
2945
La lecture de STDIN est recommandée
<?php
while (FALSE !== ($line = fgets(STDIN))) {
echo $line;
}
?>
mjs
Points
9378
Pour éviter de gâcher les poignées de fichiers, utilisez file_get_contents()
et php://stdin
:
$ echo 'Hello, World!' | php -r 'echo file_get_contents("php://stdin");'
Hello, World!
(Si vous lisez une quantité vraiment énorme de données de stdin
vous voudrez peut-être utiliser l'approche de traitement de fichier, mais cela devrait être bon pour plusieurs mégaoctets.)
Rana Muhammad Usman
Points
1956