应用preg_replace()生成不需要的符号

时间:2017-08-30 13:30:38

标签: php preg-replace

我有一个函数,用于格式化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可以是,例如。 lswhoami等。该函数有效,但会为输出生成一些不需要的字符。例如,对于exit,它提供以下输出:

]0;Peppermint Terminal[01;32musr@usrfox-g50[01;34m ~ $[00m exit
logout

输出中不需要这些] 0; [01; 34m [00m 符号)。它们来自哪里?

1 个答案:

答案 0 :(得分:0)

这些是来自bash shell的标志,用于更改控制台文本的颜色。通常,您将获得用于以干净文本而不是格式返回值的程序。