问题
I want to convert mirc color codes to html via php.
Here is the example: http://searchirc.com/search.php?F=exact&T=chan&N=6246&I=anime-pirates
Thanks
回答1:
Use preg_replace_callback:
function mycallback($matches) {
$bindings = array(
0=>'white',
1=>'black',
2=>'blue',
3=>'green',
4=>'red',
5=>'brown',
6=>'purple',
);
$fg = isset($bindings[$matches[1]]) ? $bindings[$matches[1]] : 'transparent';
$bg = isset($bindings[$matches[2]]) ? $bindings[$matches[2]] : 'transparent';
return '<span style="color: '.$fg.'; background: '.$bg.';">'.$matches[3].'</span>';
}
$str = '^C3,1Hello^C foo ^C6,2World^C';
$str = preg_replace_callback('/\^C([0-9]{1,2}),?([0-9]{1,2})(.*?)\^C/', 'mycallback', $str);
echo $str;
来源:https://stackoverflow.com/questions/4503194/parsing-mirc-colors-in-php