Dies ist eine ähnliche Frage zu this one. Ich möchte ANSI-Escape-Sequenzen, insbesondere für Farbe, in HTML konvertieren. Dies möchte ich jedoch mit PHP erreichen. Gibt es Bibliotheken oder Beispielcode, die das tun? Wenn nicht, kann mich alles zu einer benutzerdefinierten Lösung führen?Konvertierung von ANSI-Escape-Sequenzen in HTML mit PHP
Antwort
Ich kenne keine solche Bibliothek in PHP. Aber wenn Sie eine konsistente Eingabe mit begrenzten Farben haben, können Sie es erreichen eine einfache str_replace()
mit:
$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);
Die str_replace Lösung würde in Fällen, die nicht arbeiten, in denen Farben „verschachtelt“ werden, weil in ANSI-Farbcodes, ein ESC [0m Reset ist alles was benötigt wird, um alle Attribute zurückzusetzen. In HTML benötigen Sie die genaue Anzahl der abschließenden SPAN-Tags.
Eine Abhilfe, die den "verschachtelten" Use Case funktioniert, ist unter:
// 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);
(genommen von meiner Drush Terminal-Ausgabe hier: http://drupal.org/node/709742)
Ich bin auch für die PHP-Bibliothek suchen zu tun das leicht.
P.S. Wenn Sie ANSI-Escape-Sequenzen in PNG/Bild konvertieren möchten, können Sie AnsiLove verwenden.
Es gibt jetzt Bibliothek: ansi-to-html
Und sehr einfach zu bedienen:
$converter = new AnsiToHtmlConverter();
$html = $converter->convert($ansi);
- 1. Konvertierung von Sonderzeichen in PHP
- 2. HTML-Konvertierung
- 3. Konvertierung von Textdatei in HTML-Datei
- 4. HTML-Layout-Konvertierung in PDF
- 5. Konvertierung von HTML in PDF auf iOS?
- 6. Konvertierung von HTML zu PDF mit Chrome pdfium
- 7. Problem bei der Konvertierung von HTML nach PDF
- 8. HTML-Tabelle zu YAML-Konvertierung
- 9. contentful api markdown Konvertierung in HTML
- 10. Verhindern HTML-Entity-Konvertierung zu Emoji
- 11. PHP-Code innerhalb von HTML oder HTML in PHP?
- 12. Statische HTML-Template-Konvertierung in WordPress- JavaScript & Jquery Problem
- 13. PHP Array String-Konvertierung mit preg_match
- 14. PHP-Sitzungen mit HTML
- 15. Hochwertige PDF-zu-Word-Konvertierung in PHP?
- 16. xsd dateTime Konvertierung für PHP
- 17. str_replace HTML mit PHP
- 18. php - wordwrap mit html
- 19. Passdaten und Daten in PHP-Datei von html jquery php und dann von php jquery html
- 20. Konvertieren von PDF in HTML in PHP?
- 21. Validieren von HTML-Formularen mit PHP
- 22. Erstellen von HTML-Vorlagen mit PHP
- 23. Javascript Datei-Konvertierung in PHP-Schleife
- 24. Senden von HTML-E-Mail mit PHP
- 25. HTML-Formular mit PHP
- 26. Javascript und html von PHP mit Leerzeichen
- 27. (Re) Konvertierung von korrupten UTF-8-Eingabe in PHP?
- 28. Konvertierung von TIFF in PDF mit Ghostscript
- 29. Konvertierung von .mp3 in .m4a mit ffmpeg
- 30. UIImage Konvertierung von NSData
ich wirklich für eine allgemeinere Lösung suchen, aber das ist gut, und ich kann diesen Weg am Ende gehen. –