Comment puis-je lire le contenu de stdin (jusqu'à EOF) dans une chaîne en PHP?Comment puis-je lire le contenu de stdin (jusqu'à EOF) dans une chaîne en PHP?
30
A
Répondre
5
utiliser certaines des fonctions de lecture de fichiers (par exemple fgets()
, fgetc()
, fscanf()
) et passez STDIN
comme le chemin du fichier (ou php://stdin
, selon la nouvelle version de PHP est). Vous pouvez tester l'EOF à l'aide de feof()
. Voir le reference for command-line programming in PHP sur PHP.net pour plus d'informations.
52
a fini par le découvrir moi-même:
$input_data = file_get_contents("php://stdin");
0
est ici une alternative: Vous pouvez utiliser stream_get_contents
pour obtenir tout d'un flux ouvert (AKA un descripteur de fichier). STDIN
est un équivalent de poignée déjà ouvert à ce que vous obtenez si vous appelez fopen('php://stdin')
(voir référence: Input/output streams
donc: vous pouvez utiliser
$input_data = stream_get_contents(STDIN);
qui équivaut à the accepted answer
.