Scheint wie eine wirklich einfache Aufgabe, aber ich habe eine wirklich harte Zeit zu identifizieren, das Ende der Eingabe über PHP nach stdin [5.5.x]. Anstatt ein 0x04
EOT-Zeichen zu übergeben, um die letzte Zeichenfolge zu überdecken, scheint fgets(STDIN)
sich dafür zu entscheiden, auf die Eingabe mit keinem erkennbaren Signal zu warten. Die naheliegendste Demonstration ist durch den Code "Eingabe empfangen"Erkennen von EOT von stdin in PHP
<?php
while(substr(rtrim(fgets(STDIN), PHP_EOL), -1) != 0x04) {
echo "Input received.";
}
Nach Ctrl + D, wobei die Schleife strafft sofort und wiederholt Verschüttet in stdout, anstatt das EOT zu erkennen oder auf weitere Eingaben zu warten. Warum ist das?