Ver Mensaje Individual
  #3 (permalink)  
Antiguo 04/06/2009, 12:53
Alcalina
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 1 mes
Puntos: 5
Pregunta Respuesta: BBCode a HTML Buffer

Siento ser el mismo pesado de antes xD

Buscando y buscando he encontrado un código que me sirve y funciona bien, pero me gustaría saber el porque es así, me gusta saber que es lo que hace cada pedazo de código de mi web.

Código PHP:
<?php
header
('Content-Type: text/html; charset=ISO-8859-1');

// Obtención de Datos de la Base de Datos
$texto_BD "
[b]Negrita[/b]
[i]Cursiva[/i]
[u]Subrayado[/u]
[s]Tachado[/s]
[center]Centrado[/center]
[code]Código[/code][list]
[li]Lista 1[/li]
[li]Lista 2[/li][/list][hr]
[size=20pt]Tamaño 20[/size]
[color=red]ROJO[/color]
[color=green]VERDE[/color]
[color=grey]GRIS[/color]
[color=purple]VIOLETA[/color]
[color=orange]NARANJA[/color]
[IMAGEN]URL IMAGEN[/IMAGEN] // IMAGEN es el BBCode IMG
[DIRECCION]WEB[/DIRECCION] // DIRECCION es el BBCode URL
[DIRECCION=WEB]TEXTO[/DIRECCION]
[youtube]VIDEO YOUTUBE[/youtube]
"
;


function 
BBcode($texto){
   
$texto htmlentities($texto);
   
$a = array(
      
"/\[i\](.*?)\[\/i\]/is",
      
"/\[b\](.*?)\[\/b\]/is",
      
"/\[u\](.*?)\[\/u\]/is",
      
"/\[img\](.*?)\[\/img\]/is",
      
"/\[DIRECCION=(.*?)\](.*?)\[\/DIRECCION\]/is"
   
);
   
$b = array(
      
"<i>$1</i>",
      
"<b>$1</b>",
      
"<u>$1</u>",
      
"<img src=\"$1\" />",

       
"<a href=\"$1\" target=\"_blank\">$2</a>"
   
);
   
$texto preg_replace($a$b$texto);
      
$texto nl2br($texto);
   return 
$texto;
};
?>
Código HTML:
<html>
<head>
<title>Mi Web muestra caritas</title>
</head>
<body bgcolor='#AAAAAA'>
<?php 
echo BBCode($texto_BD);
?>
</body>
</html> 
Pues es que no se para que sirven tantas /\ en el array, ni el $1, $2, etc, ni (.*?) ni casi nada de lo que hay en esa función, alguien me hecha una mano? todavia tengo que implementar el del youtube y no se como hacerlo sin conocer el comportamiento xD

P.D Estoy harto de que no me deje poner los BBCode de URL al final me voy a hinchar a contestar mensajes hasta que alcanze las 30 respuestas porque me tiene desesperado ya