これはthis oneと同様の質問です。私はANSIのエスケープシーケンス、特に色のHTMLに変換したいと思います。しかし、私はPHPを使用してこれを達成したいと思います。これを行うライブラリやサンプルコードはありますか?そうでない場合は、私をカスタムソリューションに導くことができるものは何ですか?PHPを使用してANSIエスケープシーケンスをHTMLに変換する
7
A
答えて
3
私はこのようなライブラリをPHPで知りません。
$dictionary = array(
'ESC[01;34' => '<span style="color:blue">',
'ESC[01;31' => '<span style="color:red">',
'ESC[00m' => '</span>' ,
);
$htmlString = str_replace(array_keys($dictionary), $dictionary, $shellString);
7
str_replaceソリューションが原因ANSIカラーコードで、色は「ネストされた」されている場合には動作しない、1:あなたは限られた色と一致した入力を持っている場合しかし、あなたはstr_replace()
簡単な使用してそれを達成することができますESC [0mリセットはすべての属性をリセットするために必要なすべてです。 HTMLでは、SPAN終了タグの正確な数が必要です。
「ネストされた」ユースケースを働く回避策は以下の通りです:
私も実行するPHPライブラリを探しています:
// Ugly hack to process the color codes
// We need something like Perl's HTML::FromANSI
// http://search.cpan.org/perldoc?HTML%3A%3AFromANSI
// but for PHP
// http://ansilove.sourceforge.net/ only converts to image :(
// Technique below is from:
// http://stackoverflow.com/questions/1375683/converting-ansi-escape-sequences-to-html-using-php/2233231
$output = preg_replace("/\x1B\[31;40m(.*?)(\x1B\[0m)/", '<span style="color: red">$1</span>$2', $output);
$output = preg_replace("/\x1B\[1m(.*?)(\x1B\[0m)/", '<b>$1</b>$2', $output);
$output = preg_replace("/\x1B\[0m/", '', $output);
(http://drupal.org/node/709742がここに私のDrushターミナルの問題から撮影します)これは簡単です。
P.S. ANSIエスケープシーケンスをPNG /イメージに変換する場合は、AnsiLoveを使用できます。
2
ライブラリが存在することになります:ansi-to-html
そして非常に使いやすい:
$converter = new AnsiToHtmlConverter();
$html = $converter->convert($ansi);
関連する問題
- 1. バイトとしてAnsiエスケープシーケンス
- 2. ANSIエスケープシーケンスを使用してbashでターミナルウィンドウのタイトルを取得する方法は?
- 3. PHPを使用してHTMLをPDFに変換しますか?
- 4. C#を使用してANSIからASCIIにASCIIファイルを変換する
- 5. CygwinでANSIエスケープシーケンスが失敗する
- 6. PHPを使用して単語のテキストデータをHTMLに変換する方法
- 7. PHPを使用してJSON出力をHTMLテーブルに変換しますか?
- 8. mod_rewriteを変更してPHPをhtmlに変換する.htaccess
- 9. PHPを使ってxmlをhtmlに変換する
- 10. C#を使用してHTMLテーブルをExcelシートに変換する
- 11. jsp xslを使用してxmlをhtmlに変換する
- 12. vbscriptを使用してmsgをhtmlに変換します。
- 13. PHPを使用してテキストファイルをXMLに変換する
- 14. PHPを使用してmysqlをSQLiteに変換する方法
- 15. PHPを使用してJSONをCSV形式に変換する
- 16. phpでpdfをhtmlに変換する
- 17. 拡張ASCII/ANSI値を変換する
- 18. phpを使用してテキストファイルをxmlに変換しますか?
- 19. phpを使用してxmlをmysqlに変換しますか?
- 20. LinuxボックスでPHPを使用してWindowsタイムスタンプに変換する
- 21. XMLをHTMLに変換する - PHPとXLSテンプレートを使用する
- 22. PHPインターフェイスを使用してHTMLを変更する
- 23. XSLを使用した:HTML変換
- 24. itextsharpを使用してHTMLをPDFに変換
- 25. スクリプトを使用したHTMLをRTFに変換する
- 26. エスケープシーケンスの使用
- 27. Windows 7でimagemagickを使用してHTMLからPNGに変換
- 28. どのようにPHPを使用してライブ編集可能なテンプレートにHTMLを変換するには?
- 29. PHP:すべての文字をHTMLエンティティに変換する
- 30. Railsを使用してhtmlファイル(htmlレイアウトではない)をpdfに変換
私は本当に多くの一般的な解決策を探していますが、これは良いですし、私はこのルートを行くことになるかもしれません。 –