voku / ansi-to-html
一个将包含ANSI代码的文本转换为HTML的库
v3.0.0
2022-06-07 10:39 UTC
Requires
- php: ~7.0|~8.0
Requires (Dev)
- phpunit/phpunit: ~6.0 || ~7.0 || ~9.0
README
PHP的ANSI到HTML5转换器
*** 这只是 "https://github.com/sensiolabs/ansi-to-html" 的分支 ***
这个小型库只做一件事:将包含ANSI代码的文本转换为HTML5片段
require_once __DIR__ . '/vendor/autoload.php'; use voku\AnsiConverter\AnsiToHtmlConverter; $converter = new AnsiToHtmlConverter(); $html = $converter->convert($ansi);
变量 $ansi
应该包含带有ANSI代码的文本,而 $html
将包含其转换后的HTML5版本。
然后您可以将HTML5片段输出到任何HTML文档中
<html> <body> <pre style="background-color: black; overflow: auto; padding: 10px 15px; font-family: monospace;" ><?php echo $html ?></pre> </body> </html>
转换器支持不同的颜色主题
use voku\AnsiConverter\Theme\SolarizedTheme; $theme = new SolarizedTheme(); $converter = new AnsiToHtmlConverter($theme);
默认情况下,颜色将内联到HTML中,但您也可以通过关闭样式内联来使用类
$converter = new AnsiToHtmlConverter($theme, false);
并且主题对象的 asCss()
方法允许您以CSS片段的形式检索主题样式
$styles = $theme->asCss();
然后您可以在HTML文档中使用这些样式
<html> <head> <style> <?php echo $styles ?> .ansi_box { overflow: auto; padding: 10px 15px; font-family: monospace; } </style> </head> <body> <pre class="ansi_color_bg_black ansi_color_fg_white ansi_box"><?php echo $html ?></pre> </body> </html>
您还可以通过使用新的主题调用 setTheme()
方法来覆盖主题。