我目前正在为 PHP 创建一个新的整洁的 CLI 库,我想弄清楚它正在运行的控制台的宽度/高度。
我尝试了很多东西,比如挖掘 $_ENV、exec("echo $COLUMNS") 等,但没有结果,而如果我在 bash 命令行中键入 echo $COLUMNS 或 $ROWS,它会整齐地显示值。
我需要做什么才能从 PHP 访问这个值?
我正在使用这样的 .sh 脚本:
#!/usr/bin/php -q
<?php
require_once('lib.commandline.php');
class HelloWorld extends CommandLineApp {
public function main($args) {
echo('O, Hai.');
}
}
更新 最终解决方案:
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];
}
}