Attualmente sto creando una nuova libreria CLI per PHP, e mi piacerebbe capire la larghezza/altezza della console in cui è in esecuzione.
Ho provato molte cose come scavare attraverso $ _ENV, exec ("echo $ COLUMNS"), ecc., ma nessun risultato, mentre se digito echo $ COLUMNS o $ ROWS nella riga di comando bash, mostra in modo preciso il valore.
Cosa devo fare per accedere a questo valore da PHP?
che sto utilizzando script .sh in questo modo:
#!/usr/bin/php -q
<?php
require_once('lib.commandline.php');
class HelloWorld extends CommandLineApp {
public function main($args) {
echo('O, Hai.');
}
}
Aggiornamento soluzione finale:
public function getScreenSize() {
preg_match_all("/rows.([0-9]+);.columns.([0-9]+);/", strtolower(exec('stty -a |grep columns')), $output);
if(sizeof($output) == 3) {
$this->settings['screen']['width'] = $output[1][0];
$this->settings['screen']['height'] = $output[2][0];
}
}
eccellente. Mi sono completamente dimenticato di 'tput' mentre scavo per ottenere solo le informazioni da' stty'. –
Fantastico, ancora meglio! – SchizoDuckie
Super! Promemoria molto utile e gentile su come può essere elegante la soluzione. –