GNU/Linux >> Tutoriels Linux >  >> Linux

Comment obtenir la console Linux $COLUMNS et $ROWS à partir de PHP cli ?

$COLUMNS et $LINES n'est probablement pas exporté vers votre programme. Vous pouvez exécuter export LINES COLUMNS avant d'exécuter votre application, ou vous pouvez obtenir ces informations directement :

$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);

Une autre option shell qui ne nécessite aucune analyse est tput :

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

Je ne sais pas, pourquoi on devrait avoir besoin de grep pour analyser stty sortie :il a une option distincte pour indiquer "le nombre de lignes et de colonnes en fonction du noyau".

Une seule ligne, pas de gestion des erreurs :

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

Une seule ligne, supposez que les deux lignes/colonnes sont 0 en cas de problème et supprimez toute sortie d'erreur :

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

Utilisez le PHP ncurses_getmaxyx fonction.

ncurses_getmaxyx (STDSCR, $Height, $Width)

PRÉCÉDEMMENT :

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

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

La "bonne" façon est probablement d'appeler le TIOCGSIZE ioctl pour avoir une idée du noyau sur la taille de la fenêtre, ou appelez la commande stty -a et analyser les résultats pour rows et columns


Linux
  1. Comment obtenir votre géolocalisation à partir de la ligne de commande sous Linux

  2. Linux :Comment obtenir le temps de chargement d'une page distante avec une commande depuis le terminal ?

  3. Comment envoyer un e-mail avec pièce jointe et corps à partir de Linux

  4. Comment installer et configurer Nginx à partir de la source sous Linux

  5. Comment résoudre le problème de protocole SSL Curl TLS à partir du code CLI et PHP

Comment obtenir le nom de fichier à partir du chemin complet sous Linux

Comment installer et configurer la console Web Cockpit sur le système Linux

Comment installer et utiliser WP CLI sous Linux

Comment installer LAMP sur Ubuntu 15.10 (Linux, Apache, MySQL et PHP)

Comment installer et configurer Angular CLI sur les distributions Linux

Comment installer et utiliser PHP Composer sur les distributions Linux