Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/03/2003, 14:06
Avatar de MSDark
MSDark
 
Fecha de Ingreso: noviembre-2002
Ubicación: Talca VII región
Mensajes: 337
Antigüedad: 21 años, 5 meses
Puntos: 1
parser de bbcode

Hola.

Estoy intentando un parser de BBcode. en realidad ya esta pero de una forma bastante rudimentaria, osea asi:

Código PHP:
function bbcode($texto)
{
$texto=nl2br($texto);
$texto=str_replace("[ b]","<b>",$texto);/*Obviamente sin espacion solo los puse asi para que el foro no lo reconociera como bbcode de el*/

/** Y asi con cada codigo */

return $texto;

Cosa que es realmente engorrosa, entonces crei que se podria hacer poniendo dentro de un array todos los "bbcode" y detro de otro array poner el "html".

asi:

Código PHP:
function bbcode($texto)
{

$code = array("[ b]","[ /b]");
$html = array("<b>","</b>");
$textopreg_replace($code,$html,$texto);
return 
$texto;
}
echo 
bbcode("[ b]Hola[ /b] chao"); 
y el resultado que eso me da es

[]Hola[/] chao
luego quise hacerlo de la siguiente forma

Código PHP:
function bbcode($texto)
{
$code = array("/([)(b)(])(\r\n)*(.*)([/b])/siU",
          
"/([)(i)(])(\r\n)*(.*)([/i])/siU");
$html = array("<b>\5</b>",
          
"<i>\5</i>");

$texto=preg_replace($code$html$texto);
return 
$texto;
}

echo 
bbcode("[ b]Hola[ /b] chao"); 
Y el resultado de eso es lo siguiente+
Cita:
[ b]Hola[ /b] chaoPHP Warning: Unknown modifier 'b' in C:\WINDOWS\TEMP\~scp.php on line 10 PHP Warning: Unknown modifier ']' in C:\WINDOWS\TEMP\~scp.php on line 10
esa linea corresponde al preg_replace();


Entonces la pregunta es:

Que y como puedo hacer para la funcion de bbcode para no hacerla tan engorrosa como la primera muestra, osea para hacer un bucle mas funcional?


De antemano gracias

Saludos
__________________
DelirioLinux.. Software Libre y tecnología.. php también..
Saludos :arriba:
Usuario Linux #198486 y Ubuntu #12791
Gutsy Gibbon

Última edición por MSDark; 09/03/2003 a las 14:09