Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2004, 08:03
Madned
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 7
Antigüedad: 20 años
Puntos: 0
Duda con expresiones regulares

Saludos a todos.
Llevo tiempo dándole a la cabeza con este problema y no hay manera de encontrar la solución.

Quiero detectar en un textarea las etiquetas [img] y [/img] para mostrar una imagen en un sistema de noticias. El problema radica en que entre esas etiquetas el usuario no incluye la ruta de la imagen, sino la ID de una imagen que se haya en una base de datos.

Tengo una solución para ese problema, pero solo funciona cuando tengo una imagen! al tener dos imagenes no funciona. Es algo asi:

if (eregi("\[img\](.*)\[/img\]",$texto,$img_reg))
{
$texto=findimg($img_reg,$texto);
}
return $texto;

function findimg($entero,$texto)
{
$img_result=mysql_query("SELECT descripcion,path,nombre FROM imagenes WHERE ID=$entero[1]");
if ($img_row=mysql_fetch_array($img_result))
{
$path="<img src=\"../../img/".$img_row["path"]."/".$img_row["nombre"]."\" alt=\"".$img_row["descripcion"]."\"/>";
}
else
{
$path="<img src=\"imagen_no_valida\"/>";
}
$texto=eregi_replace("\[img\](.*)\[/img\]",$path,$texto);
mysql_free_result($img_result);
return $texto;
}

Se que es bastante complicado, espero que me puedan dar una respuesta.
Gracias, y un saludo.