Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/06/2005, 18:50
Avatar de derkenuke
derkenuke
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: self.location.href
Mensajes: 2.665
Antigüedad: 20 años, 6 meses
Puntos: 45
fabricar un lenguaje tipo foro

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!
__________________
- Haz preguntas inteligentes, y obtendrás más y mejores respuestas.
- Antes de postearlo Inténtalo y Búscalo.
- Escribe correctamente tus mensajes.