Il s'agit d'une question similaire à this one. Je voudrais convertir les séquences d'échappement ANSI, en particulier pour la couleur, en HTML. Cependant, je voudrais accomplir cela en utilisant PHP. Existe-t-il des bibliothèques ou des exemples de code qui le font? Si non, tout ce qui peut me faire partie d'une solution personnalisée?Conversion de séquences d'échappement ANSI en HTML en utilisant PHP
Répondre
Je ne connais aucune bibliothèque de ce type en PHP. Mais si vous avez une entrée compatible avec les couleurs limitées, vous pouvez accomplir à l'aide d'un simple str_replace()
:
$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);
La solution str_replace ne fonctionnerait pas dans les cas où les couleurs sont « imbriquées », parce que dans les codes couleurs ANSI, un ESC [0m reset est tout ce qui est nécessaire pour réinitialiser tous les attributs. En HTML, vous avez besoin du nombre exact de balises de fermeture SPAN.
Une solution qui fonctionne le « imbriquée » cas d'utilisation est ci-dessous:
// 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);
(tiré de mon problème Drush Terminal ici: http://drupal.org/node/709742)
Je suis aussi à la recherche de la bibliothèque PHP pour faire ceci facilement.
P.S. Si vous voulez convertir des séquences d'échappement ANSI en PNG/image, vous pouvez utiliser AnsiLove.
Il y a maintenant la bibliothèque: ansi-to-html
et très facile à utiliser:
$converter = new AnsiToHtmlConverter();
$html = $converter->convert($ansi);
- 1. Conversion HTML en PDF (pas PDF en HTML) en utilisant PHP
- 2. Conversion de caractères ANSI en UTF-8 en Java
- 3. pdf à la conversion html en php
- 4. Temps de conversion en PHP?
- 5. Accéder au HTML en XML en utilisant SimpleXML en PHP
- 6. Conversion du texte en html
- 7. Une bibliothèque pour convertir les échappements ANSI (codes de formatage/couleur des terminaux) en HTML
- 8. embedding audio en html - ie et firefox en utilisant php
- 9. Conversion de caractères spéciaux en PHP
- 10. Convertir .doc en html en php
- 11. Conversion de HTML en Django Fixture (JSON)
- 12. PHP: Conversion de UTF-8 HTML
- 13. Conversion de Doc en utilisant OpenOffice SDK
- 14. Conversion Pdf en Swf en utilisant Java
- 15. Conversion de données efficace en utilisant .Net
- 16. Conversion HTML select/optgroup en Flex
- 17. Trouver des expressions/mots entre HTML en utilisant PHP
- 18. PHP/HTML/CSS: IE agissant bizarrement en utilisant require_once()
- 19. Conversion de SVG en PNG en utilisant C#
- 20. Conversion de pdf en images en utilisant Ruby/JRuby
- 21. Conversion d'entités XML/HTML en chaîne Unicode en Python
- 22. Conversion de séquences de touches rassemblées par onkeydown en caractères JavaScript
- 23. HTML commentaire grattage en PHP
- 24. PHP Conversion d'Excel (.xls) en pdfs
- 25. Conversion au jour le jour en php
- 26. conversion & & pour XML en PHP
- 27. Conversion PHP UTF-16 en ASCII
- 28. Séquences de tri Opencv en python
- 29. Conversion d'une chaîne sed en PHP
- 30. Conversion d'un tableau PHP en XML?
Je cherche vraiment une solution plus générale, mais cela est bon et je pourrais finir par aller dans cette voie. –