Tema: BBCode
Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2004, 21:36
Avatar de Reynier
Reynier
 
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 21 años, 5 meses
Puntos: 1
BBCode

Bueno ante todo he de decirles que casi casi tengo terminado mi Foro. Por lo menos la parte de mostrar las cosas. No he realizado nada de realizar las inserciones en tablas todavía. Hace unos días me topé con un POST donde se hablaba de un código para parsear BBCode. El link es este por si quieren revisarlo: http://www.php-hispano.net/archivos/Manuales/126. Pues bien he bajado y modificado un poco ese código para adaptarlo a mis necesidades. Este es el resultado de esa modificación:
Código PHP:
# Mod: BBCode
 
function BBCode($text){
  
# Links para URLs. Formato: [web=http://www.miweb.com]Mi web[/web]
  
$bbcode eregi_replace("\\[web=([^\\[]*)\\]([^\\[]*)\\[/web\\]""<a target=\"_blank\" href=\"\\1\">\\2</a>"$bbcode);
  
# Si no ponen atributos en [web]. Formato: [web]http://www.miweb.com[/web]
  
$bbcode eregi_replace("\\[web\\]([^\\[]*)\\[/web\\]","<a target=\"_blank\" href=\"\\1\">\\1</a>",$bbcode);
  
# Bucle por si usan [B][U][I] en el mismo texto
  
while($bucle<5) {
   
# Para poner linea al texto. Formato: [U]MiWeb[/U]
   
$bbcode eregi_replace("\\[u\\]([^\\[]*)\\[/u\\]","<u>\\1</u>",$bbcode);
   
# Para poner el text en italic. Formato: [I]MiWeb[/I]
   
$bbcode eregi_replace("\\[i\\]([^\\[]*)\\[/i\\]","<em>\\1</em>",$bbcode);
   
# Para poner texto en negrita Formato: [B]MiWeb[/B]
   
$bbcode eregi_replace("\\[b\\]([^\\[]*)\\[/b\\]","<strong>\\1</strong>",$bbcode);
   
$bucle++;
  }
   
# Para centralizar un texto. Formato: [centro] [/centro]
   
$bbcode eregi_replace("\\[center\\]([^\\[]*)\\[/center\\]","<div align=center>\\1</div>"$bbcode);
   
# Para centralizar un texto. Formato: [derecha] [/derecha]
   
$bbcode eregi_replace("\\[right\\]([^\\[]*)\\[/right\\]","<div align=right>\\1</div>"$bbcode);
   
# Para centralizar un texto. Formato: [izquierda] [/izquierda]
   
$bbcode eregi_replace("\\[left\\]([^\\[]*)\\[/left\\]","<div align=left>\\1</div>"$bbcode);
   
# Para centralizar un texto. Formato: [justificado] [/justificado]
   
$bbcode eregi_replace("\\[justify\\]([^\\[]*)\\[/justify\\]","<div align=justify>\\1</div>"$bbcode);
   
# Pone el texto como una cita. Formato: [CITA] [/CITA]
   
$bbcode eregi_replace("\\[cita\\]([^\\[]*)\\[/cita\\]","\n<div class=\"css_title\">Cita\n<div class=\"css\">\\1</div></div>"$text);
   
# Sacamos el color al codigo PHP. Formato: [  PHP  ] [  /PHP  ]
   
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>";
 } 
pues bien lo que pasa es que cuando llamo a esa función con resultados sacados de una BDatos dígamos que este sea el contenido de lo que he sacado de la BDatos:
[QUOTE]
[ b ] Ya que algunas personas me lo han pedido estas son las ventajas que ofrece el PHP sobre otros lenguajes de programación: [ /b ]

Las páginas HTML estáticas que has realizado son eso mismo .. estáticas. No hay procesos automáticos como los que podrías hacer desde PHP. Ejemplo: actualizar contenido; en tus páginas HTML actuales .. si quieres cambiar algo del contenido debes usar tu editor HTML .. modificarla en tu PC .. tener los conocimientos suficientes de HTML y manejo de esas aplicaciones y subirlo a tu servidor nuevamente. En resumen .. tu cliente depende de tu disponibilidad para esa taréa de actualización de contenido. Con PHP .. el contenido lo podría actualizar tu usuario directamente sobre un "panel de administración" que le hagas ..donde con un formulario HTML y pco más actualizaría lo que necesite.

Con PHP (y en general con cualquier lenguaje del lado del servidor) puedes interactuar con Base de datos .. mandar un e-mail (sin pasar por el cliente de correo que pueda o no tener instalado tu visita a tu web ..).. Generar código HTML/javscript de forma dinámica .. con lo cual partes de código repetitivas podrías reutilizarlas ..

En fin .. con PHP vas a darle "dinamismo" a ese sitio .. En ningún momento vas a avandonar tu HTML/javascript que ya dominas. Con PHP sólo vas a "decidir" que HTML mostrar o no según tu programación en PHP y "formateando" los datos que obtengas de una BD .. un archivo de texto plano .. generados por el própio código u otros médios.

Salu2
[PHP]
lo que me imprime mi pagina al hacer esta llamada de la funcion
Código PHP:
BBCode(nl2br($fetch['text'])); 
es lo mismo que esta arriba que saque de la base de datos, es decir no me sustituye [ b ] [ /b ] por negritas y asi con todo. Que hay mal en todo esto?
Salu2
PD: He puesto ^ en las negritas para que FDW no me las formatee y entiendan lo que quiero decir
__________________
Ing. Reynier Pérez Mira

Última edición por Reynier; 04/06/2004 a las 21:39