Foros del Web » Programando para Internet » PHP »

Gestor de Contenido: paso de código bbcode a html

Estas en el tema de Gestor de Contenido: paso de código bbcode a html en el foro de PHP en Foros del Web. Buenas!! Estoy programando un gestor de contenido, ya todo va, menos lo referente a convetir las tags típicas de bbcode como [url] o [email]. He ...
  #1 (permalink)  
Antiguo 07/06/2004, 10:44
Avatar de korbendallastc  
Fecha de Ingreso: febrero-2003
Ubicación: Madrid
Mensajes: 226
Antigüedad: 21 años, 2 meses
Puntos: 0
Gestor de Contenido: paso de código bbcode a html

Buenas!!

Estoy programando un gestor de contenido, ya todo va, menos lo referente a convetir las tags típicas de bbcode como [url] o [email]. He mirado el código de los foros phpbb pero no me aclaro, no me entero del fragmento o de las instrucciones que realizan estas tareas. Y por mi cuenta, no se me ocurre el algoritmo a usar o las funciones que me pueden ser útiles.

Alguna idea? Algún otro script en el que basarme? algún código interesante?

Muchas gracias y saludos!!
__________________
  #2 (permalink)  
Antiguo 07/06/2004, 11:03
Avatar de Reynier  
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 4 meses
Puntos: 1
Pues yo ando en las mismas

Yo ando en las mismas y no doy con el código. Me bajé este de algún lado pero no me sirve y sobre todo lo que más me interesa es colorear el código PHP.
Código PHP:
function BBCode($text){
  
$bbcode eregi_replace("\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]""<a target=\"_blank\" href=\"\\1\">\\2</a>"$text);
  
$bbcode eregi_replace("\\[web\\]([^\\[]*)\\[/web\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$text);
  while(
$bucle<5) {
   
$bbcode eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>",$text);
   
$bbcode eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>",$text);
   
$bbcode eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>",$text);
   
$bucle++;
  }
   
$bbcode eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<div align=center>\\1</div>"$text);
   
$bbcode eregi_replace("\\[right\\]([^\\[]*)\\[/right\\]","<div align=right>\\1</div>"$text);
   
$bbcode eregi_replace("\\[left\\]([^\\[]*)\\[/left\\]","<div align=left>\\1</div>"$text);
   
$bbcode eregi_replace("\\[justify\\]([^\\[]*)\\[/justify\\]","<div align=justify>\\1</div>"$text);
   
$bbcode eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>"$text);
   
preg_match_all ("/(\[)(php)(])(.*)(\[\/php\])/iU"$text$l);
   for(
$i=0$icount($l[0]); $i++){
    
$bbcode str_replace($l[0][$i],PHPFormat($l[4][$i]),$text);
   }
   return 
$bbcode;
  }
#Funcion para código PHP
 
function PHPFomrmat($php) {
  
$php str_replace("<br \>","\n",$php);
  
ob_start();
  
highlight_string($php);
  
$cfinal ob_get_contents();
  
ob_end_clean();
  
$keycol=ini_get("highlight.keyword");
  
$manual="http://www.php.net/manual-lookup.php?lang=es&amp;pattern=";
  
$cfinal=preg_replace('{([\w_]+)(\s*</font>)'.
                       
'(\s*<font\s+color="'.$keycol.'">\s*\()}m',
                       
'<a href="'.$manual.'$1" title="Ayuda en PHP.net sobre $1" target="_blank">$1</a>$2$3',
                       
$cfinal);
  return 
"<div class='ccs_title'>Código PHP:<div class='css'>".$cfinal."</div></div>";
 } 
Si tu das con su forma de trabajo me avisas para que me expliques como es
Salu2
__________________
Ing. Reynier Pérez Mira
  #3 (permalink)  
Antiguo 07/06/2004, 14:31
Avatar de Gerald  
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
http://www.php-hispano.net/archivos/Manuales/126

Repito lean los comentarios de la gente que ha usado y ha implementado este codigo.
Se usa asi

Código PHP:
<? 
$texto
=bbcodes($row['contenido']); // guardamos el texto con el bbcode en la variable. XD 
echo $texto
?>
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:10.