Ver Mensaje Individual
  #65 (permalink)  
Antiguo 17/05/2006, 08:48
Avatar de -Defero-
-Defero-
Colaborador
 
Fecha de Ingreso: julio-2004
Ubicación: Guipúzcoa
Mensajes: 4.776
Antigüedad: 20 años, 4 meses
Puntos: 76
Pues nada, visto el buen resultado que me ha dado lo anterior, me he puesto manos a la obra para arreglar esto:

Cita:
Iniciado por Defero.tk
(...) nota: hay un pequeño problema cuando en esos primeros 150 caracteres hay algo de BBcode, pero eso ya intentaré solucionarlo más adelante, de momento no me preocupa tanto (...)
O sea, que quiero filtrar el mensaje para quitar las etiquetas bbcode, y dejar sólo el texto limpio. Buscando por aquí y por allá, he encontrado un truco en Xergio.net (ese tal Xergio es un fiera). Pero yo no quiero hacer sustituciones tan complicadas, sólo quiero quitar todas las etiquetas bbcode, es decir, eliminar todo lo que aparezca entre corchetes. He probado a simplificar al máximo el código, y funciona:

Código PHP:
<?php 
 
function bbcode($texto) { 
  
$texto=nl2br(htmlentities($texto)); 
  
$URLSearchString " a-zA-Z0-9:/-?&&amp;.=_~#'"# Lo caracteres aceptados. 
  
$texto preg_replace("(\[.+?\])is",'',$texto); 
  return 
$texto
 } 
 echo 
bbcode("[b]hola[/b] [i]pepe[/i] [u]nieto[/u] [url=http://dhost.info/foroepj/viewphp?f=8]Prueba[/url] [img]http://www.forosdelweb.com/banner.gif"); 
 
?>
Bien, genial, estoy eufórico por este hallazgo... pero no tengo ni idea de cómo podría meterlo en el código del anterior mensaje, para que me hiciera el filtrado en el resultado de la consulta en la base de datos. He buscado información acerca de la función PREG_REPLACE en Google y he estado haciendo algunas pruebas, pero no consigo resultados satisfactorios.
__________________
abogado en Errenteria + procuradora en San Sebastián = equipo imparable