No se como se llama el sistema.. bbcode kreo. pero me gustaria que al leer de una base de datos:
Código:
[codigo]
aqui todo mi codigo
[/codigo]
Se representase como
Código PHP:
<div class="code">aqui todo mi codigo</div>
Y me he creado esta funcion:
Código PHP:
function elCode( $codigo ) {
$hay=preg_match_all("/\[(code)\]((.|\s)+)\[\/\\1\]/i",$codigo,$resultado);
for($a=0;$a<count($resultado[1]);$a++) { //por cada code
$HTML='<div class="code">'. nl2br($resultado[2][$a]) .'</div>';
$codigo=str_replace( $resultado[0][$a] , $HTML , $codigo );
}
return $codigo;
}
Y funciona... en parte. El problema esta en:
Código:
[codigo]mi codigo1[/codigo]
[codigo]mi codigo2[/codigo]
es sustituido por:
Código PHP:
<div id="code">mi codigo1[/codigo][codigo]mi codigo2</div>
¿Como hacer para que no tome todo el centro como un bloque y se pare en el primer [/codigo] que encuentre? Las expresiones regulares es lo que tiene..
saludillos!