我有一个函数,用于格式化proc_open
的输出。
private function prepareOutput($output) {
$output = htmlentities($output);
$output = addslashes($output);
$output = explode("\n", $output);
$output = implode("</span><span>", $output);
$output = sprintf("<span>%s</span>", $output);
$output = preg_replace("/\r\n|\r|\n/", '\n', $output);
$output = preg_replace('/\x1B\[0m(\x1B)/', "\x1B", $output);
$output = preg_replace('/\x1B\[m/', '', $output);
$output = preg_replace('/\x07/', '', $output);
flush();
return $output;
}
我将它用于其他Linux shell命令,例如
prepareOutput(stream_get_contents($this->pipes[1]));
其中param可以是,例如。 ls
,whoami
等。该函数有效,但会为输出生成一些不需要的字符。例如,对于exit
,它提供以下输出:
]0;Peppermint Terminal[01;32musr@usrfox-g50[01;34m ~ $[00m exit
logout
输出中不需要这些] 0; 和 [01; 34m 和 [00m 符号)。它们来自哪里?
答案 0 :(得分:0)
这些是来自bash
shell的标志,用于更改控制台文本的颜色。通常,您将获得用于以干净文本而不是格式返回值的程序。