lo logre con preg_replace!!

gracias Gastorv! ;)
si a alguien le sirve aqui esta el arreglo que hice:
Código PHP:
<?php
function color($texto) {
$texto = nl2br($texto);
$texto= stripslashes($texto);
$texto = str_replace("[codigo]", 'Código:<br><div style="background-color:#FFFFFF; margin: 0px; padding: 6px; border: 1px inset; width: 645px; text-align: left; overflow: auto">[codigo]', $texto);
$texto = str_replace("[/codigo]", "[/codigo]<br /></div></div></td></tr></table>", $texto);
$texto = str_replace('"','"',$texto);
$simple_search = array(
'#\[codigo\](.*?)\[\/codigo\]#se'
);
$simple_replace = array(
"highlight_string(stripslashes(html_entity_decode(str_replace('<br />','','$1'))), true)"
);
$texto = preg_replace ($simple_search, $simple_replace, $texto);
return $texto;
}
?>