Подсветка php кода

1. Евгений (03.04.2012 / 22:16)
Хочу сделать подсветку php кода, использую функцию:
function highlight_code($code) {
$code = strtr($code,array('|'=>'|','<'=>'<','>'=>'>','&amp;'=>'&','$'=>'$','"'=>'"','''=>"'",'\'=>'`','%'=>'%','^'=>'^',':'=>':','<br />'=>"\r\n"));
if(!strpos($code,'<?') && substr($code,0,2)!='<?') {$code="<?php\r\n".trim($code);}  
$code = highlight_string($code,true);
$code = strtr($code,array("\r\n"=>'<br />','|'=>'|','$'=>'$',"'"=>''','`'=>'\','%'=>'%','^'=>'^',':'=>':'));
$code = '<div class="d">'.$code.'</div>';
return $code;
}
-----
бб код:
 function highlight_code($code) {
$code = strtr($code,array('|'=>'|','<'=>'<','>'=>'>','&amp;'=>'&','$'=>'$','"'=>'"','''=>"'",'\'=>'`','%'=>'%','^'=>'^',':'=>':','<br />'=>"\r\n"));
if(!strpos($code,'<?') && substr($code,0,2)!='<?') {$code="<?php\r\n".trim($code);}  
$code = highlight_string($code,true);
$code = strtr($code,array("\r\n"=>'<br />','|'=>'|','$'=>'$',"'"=>''','`'=>'\','%'=>'%','^'=>'^',':'=>':'));
$code = '<div class="d">'.$code.'</div>';
return $code;
}
-----
Но проблема в том, что если я пишу код в одну строчку, бб код срабатывает, а если делаю переносы, бб код не работает.
Тоесть если [коде] echo 'test'; [коде] - работает
А если
[коде]
echo 'test';
echo 'test';
[/коде] - Не работает

В чём может быть проблема ?

2. screamlt (16.04.2012 / 18:51)
Zachem ti velosiped opjat delaesh? V php uzhe est takaja funkcija syntax_highlight() ili kak tam ona, pasmotri v google smile

3. Петр (16.04.2012 / 20:29)
Что-то я не понял, где тут бб код, по-моему, ты 2 раза скопировал одно и то же. 2 - автор как раз использует эту функцию, highlight_string, смотри внимательней.

4. ramzes (16.04.2012 / 21:23)
не тот кусок выложил
косяк в регулярке

URL: https://visavi.net/topics/31025