GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bekomme ich die Linux-Konsole $ COLUMNS und $ ROWS von PHP CLI?

$COLUMNS und $LINES wird wahrscheinlich nicht in Ihr Programm exportiert. Sie können export LINES COLUMNS ausführen bevor Sie Ihre App ausführen, oder Sie können diese Informationen direkt abrufen:

$fp=popen("resize", "r");
$b=stream_get_contents($fp);
preg_match("/COLUMNS=([0-9]+)/", $b, $matches);$columns = $matches[1];
preg_match("/LINES=([0-9]+)/", $b, $matches);$rows = $matches[1];
pclose($fp);

Eine weitere Shell-Option, die kein Parsen erfordert, ist tput :

$this->settings['screen']['width'] = exec('tput cols')
$this->settings['screen']['height'] = exec('tput lines')

Ich weiß nicht, warum man jemals grep brauchen sollte um stty zu parsen Ausgabe:Es gibt eine separate Option, um "die Anzahl der Zeilen und Spalten gemäß dem Kernel" zu melden.

Einzeiler, keine Fehlerbehandlung:

list($rows, $cols) = explode(' ', exec('stty size'));

Einzeiler, bei Problemen beide Zeilen/Spalten auf 0 setzen und eventuelle Fehlerausgaben unterdrücken:

list($rows, $cols) = explode(' ', @exec('stty size 2>/dev/null') ?: '0 0');

Verwenden Sie den PHP ncurses_getmaxyx Funktion.

ncurses_getmaxyx (STDSCR, $Height, $Width)

BISHER:

http://php.net/manual/en/function.getenv.php

$cols = getenv('COLUMNS');
$rows = getenv('ROWS');

Der "richtige" Weg ist wahrscheinlich, TIOCGSIZE aufzurufen ioctl, um die Vorstellung des Kernels von der Fenstergröße zu erhalten, oder rufen Sie den Befehl stty -a auf und analysieren Sie die Ergebnisse für rows und columns


Linux
  1. So erhalten Sie Ihre Geolokalisierung von der Befehlszeile in Linux

  2. So senden Sie eine E-Mail mit Anhang und Text von Linux

  3. So installieren und konfigurieren Sie Nginx von der Quelle unter Linux

  4. So beheben Sie das Curl-TLS-SSL-Protokollproblem von CLI- und PHP-Code

  5. Wie verwende ich sched_getaffinity und sched_setaffinity in Linux von C aus?

So erhalten Sie den Dateinamen aus dem vollständigen Pfad in Linux

So installieren und konfigurieren Sie die Cockpit-Webkonsole auf einem Linux-System

So installieren und verwenden Sie WP CLI unter Linux

So installieren Sie LAMP unter Ubuntu 15.10 (Linux, Apache, MySQL und PHP)

So installieren und konfigurieren Sie Angular CLI auf Linux-Distributionen

So installieren und verwenden Sie PHP Composer auf Linux-Distributionen