Ich weiß, dass es ziemlich einfach ist, die Größenparameter eines Terminals über den Befehl stty -a
herauszufinden. Wenn Sie lokale CLI-PHP-Skripte verwenden, gibt es keinerlei Probleme beim Abrufen dieser Ausgabe über system()
oder so.Bestimmen von Terminalzeilen/Spalten über PHP CLI
Aber ich versuche das gleiche über ein PHP-Skript von einem SSH-Befehl gestartet. Leider alles, was stty
jemals zurückkehrt ist:
stty: standard input: Invalid argument.
Die Telefonvorwahl ist:
exec('stty -a | head -n 1', $query);
echo $query[0];
Die Frage ist also: Wenn ich Ausgang an den Anschluss und Eingang von ihr lesen (zB kann fread()
aus ? STDIN und fwrite()
zu STDOUT in PHP, sollte nicht stty
haben auch gültig STDIN und STDOUT
Ich hätte erwähnen sollen, dass ich versuche, etwas wie ncurses zu verwenden, nur um die Bildschirmgröße zu bekommen. – eFrane
Nicht 100% sicher, aber das Ausführen einer Exec für die Terminalgröße kann zu einer falschen Größe führen, da dies die für das Skript zulässige Größe ist und nicht für das Terminal, das es ausführt. – ChrisK
Dies würde zur Anforderung der Größe eines Terminals führen, das nicht zugewiesen ist, da SSH selbst keine Terminals für direkt aufgerufene Befehle zuweist. Hm. – eFrane