gpt4 book ai didi

php - 如何使用 php 将 bash 颜色代码解析为 html

转载 作者:搜寻专家 更新时间:2023-10-31 20:40:03 25 4
gpt4 key购买 nike

我正在尝试解析日志中的行并输出 html 并希望颜色代码起作用。

我在网上找到了这个应该可以工作的类(class),但它没有给任何颜色上色,也没有删除控制代码。它应该用等效的 html 替换控制代码,但完全忽略它输出

[0;35;22m/plugins: [0;37;1mGets a list of plugins running on the server[m

这是类

<?php

function bashColortoHtml($string) {
$ret = false;

if(!empty($string)) {
$_colorPattern = array(
'/\\033\[1;33m(.*?)\\033\[0m/s',
'/\\033\[0;31m(.*?)\\033\[0m/s',
'/\\033\[0;34m(.*?)\\033\[0m/s',
'/\\033\[0;36m(.*?)\\033\[0m/s',
'/\\033\[0;35m(.*?)\\033\[0m/s',
'/\\033\[0;33m(.*?)\\033\[0m/s',
'/\\033\[1;37m(.*?)\\033\[0m/s',
'/\\033\[0;30m(.*?)\\033\[0m/s',
'/\\033\[0;32m(.*?)\\033\[0m/s'
);
$_colorReplace = array(
'<span class="yellow">$1</span>',
'<span class="red">$1</span>',
'<span class="blue">$1</span>',
'<span class="cyan">$1</span>',
'<span class="purple">$1</span>',
'<span class="brown">$1</span>',
'<span class="white">$1</span>',
'<span class="black">$1</span>',
'<span class="green">$1</span>'
);

$ret = preg_replace($_colorPattern, $_colorReplace, $string);
}

return $ret;
}
?>
<?php
$output = bashColortoHtml('[0;35;22m/plugins: [0;37;1mGets a list of plugins running on the server[m');
echo $output;
?>

这个类有什么问题和/或有没有用 php 做这个的更好方法

最佳答案

我今天不得不解决同样的问题并编写了这个简单明了的函数。请务必检查,如果它符合您的需求,您可能需要添加一些案例。

//
// Converts Bashoutput to colored HTML
//
function convertBash($code) {
$dictionary = array(
'[1;30m' => '<span style="color:black">',
'[1;31m' => '<span style="color:red">',
'[1;32m' => '<span style="color:green">',
'[1;33m' => '<span style="color:yellow">',
'[1;34m' => '<span style="color:blue">',
'[1;35m' => '<span style="color:purple">',
'[1;36m' => '<span style="color:cyan">',
'[1;37m' => '<span style="color:white">',
'[m' => '</span>'
);
$htmlString = str_replace(array_keys($dictionary), $dictionary, $code);
return $htmlString;
}

关于php - 如何使用 php 将 bash 颜色代码解析为 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24490508/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com