2017-08-30 7 views
-2

私はproc_openの出力をフォーマットする機能を持っています。私はparamはすることができ、このpreg_replace()が不要なシンボルを生成しました

prepareOutput(stream_get_contents($this->pipes[1])); 

のような雑多なLinuxのシェルコマンド、例えばのためにそれを使用

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; 
    } 

lswhoamiなどです。この関数は機能しますが、出力に望ましくない文字を生成します。例えばexitのためには、以下の出力を与える:

]0;Peppermint Terminal[01;[email protected][01;34m ~ $[00m exit 
logout 

これら] 0。および[01; 34mおよび[00mシンボルは出力には必要ありません。彼らはどこから来たのか?

+0

これらの文字は色付きのプロンプトです。プロンプトは端末でしか見ることができず、 'proc_open()'を使ってコマンドを実行するときは表示されません。 – axiac

答えて

0

コンソールテキストの色を変更するために、bashシェルからのフラグです。通常は、書式設定ではなくクリーンテキストで値を返すために使用しているプログラムを取得します。

関連する問題