我觉得这样的思路比较方便,下面是代码,已经过测试:$s="我需要解决的问题就是能够再java里实现如csdn对于一组关键字的高亮显示以下:
[code=java]
class Test
{
public void main(String[] args)
{
System.out.println('test');
}
}
";$colors=array(
'blue'=>array('class','string','void'),
'red'=>array('main','system')
);preg_match('/\[code=java\](.*)\[\/code\]/s',$s,$matches);
$s=$matches[1];
foreach($colors as $k=>$v)
{
foreach($v as $value)
{
$s=preg_replace('/('.$value.')/is',"<font color=$k>$1</font>",$s);
}
}$s=preg_replace('/\t/s',' ',preg_replace('/\n/s','<br>',$s));
echo $s;[/code]
[code=java]
class Test
{
public void main(String[] args)
{
System.out.println('test');
}
}
";$colors=array(
'blue'=>array('class','string','void'),
'red'=>array('main','system')
);preg_match('/\[code=java\](.*)\[\/code\]/s',$s,$matches);
$s=$matches[1];
foreach($colors as $k=>$v)
{
foreach($v as $value)
{
$s=preg_replace('/('.$value.')/is',"<font color=$k>$1</font>",$s);
}
}$s=preg_replace('/\t/s',' ',preg_replace('/\n/s','<br>',$s));
echo $s;[/code]
$s="我需要解决的问题就是能够再java里实现如csdn对于一组关键字的高亮显示以下:
[mycode=java]
class Test
{
public void main(String[] args)
{
System.out.println('test');
}
}
[/mycode]";$colors=array(
'blue'=>array('class','string','void'),
'red'=>array('main','system')
);preg_match('/\[mycode=java\](.*)\[\/mycode\]/s',$s,$matches);
$s=$matches[1];
foreach($colors as $k=>$v)
{
foreach($v as $value)
{
$s=preg_replace('/('.$value.')/is',"<font color=$k>$1</font>",$s);
}
}$s=preg_replace('/\t/s',' ',preg_replace('/\n/s','<br>',$s));
echo $s;
再发一遍,刚才里面有[code=java],与csdn冲突了,我把例子里的code=java改成了mycode=java[code=PHP]
$s="我需要解决的问题就是能够再java里实现如csdn对于一组关键字的高亮显示以下:
[mycode=java]
class Test
{
public void main(String[] args)
{
System.out.println('test');
}
}
[/mycode]";$colors=array(
'blue'=>array('class','string','void'),
'red'=>array('main','system')
);preg_match('/\[mycode=java\](.*)\[\/mycode\]/s',$s,$matches);
$s=$matches[1];
foreach($colors as $k=>$v)
{
foreach($v as $value)
{
$s=preg_replace('/('.$value.')/is',"<font color=$k>$1</font>",$s);
}
}$s=preg_replace('/\t/s',' ',preg_replace('/\n/s','<br>',$s));
echo $s;[/code]