Problema con ereg_replace

shortyStyle

Hola a todos, bueno os cuento mi problema:

Tengo un texto, un comentario de un usuario cualquiera, pues bien ha puesto una imagen con el tag:

[ img]http://www.direccion.com/imagen.jpg[ /img]

Esto con una funcion se me guarda en la bbdd con el html correspondiente de la imagen, el caso es que en ese mismo tag dentro hay una llamada a una función javascript. Así se guarda en la bbdd:

< img onload="funcion(this);" src="http://www.direccion.com/imagen.jpg">

Pues bien cuando dicha persona va a editar el comentario, tengo otra función para hacer lo inversa de la primera función, es decir coger el código html del img y pasarlo a bbcode.

Y para ello uso el ereg_replace.

Hago algo así:

$texto = ereg_replace ("< img onload=\"imgLimit(this);\" src=\"([\[]*)\","[ img]\1[ /img]",$texto);

Pues bien, no me pasa el ereg_replace porque se vuelve loco con el imgLimit(this), por los paréntesis.

Alguien sabría como solucionar esto?

Muchas gracias!

r2d2rigo

No te saldria mas facil y rapido cambiar el [img] por < img> al vuelo, o guardar en la base de datos solo la URL? A no ser que tengas una funcion especifica de JavaScript para cada imagen...

SeiYa

¿Puede ser quizás porque dentro del href no has puesto ningún . que simbolice cualquier carácter? has puesto []* y eso no se nada, no hay nada encerrado en los corchetes así que habrá de 0 a infinotos nada ... por eso quizás no se cumple.

shortyStyle

Entonces que sería lo bueno para poner entre los paréntesis ? Lo de los corchetes, etc lo saqué de otra función que encontré por internet, pero no se bien bien lo que hace ni lo que quiere decir la verdad.

LOc0

Prueba a ver así:

$texto=preg_replace("/< img onload=\".(this);\" src=\"(.)\" *>/Ui", "", $texto);

Salu2 ;)

Usuarios habituales

  • LOc0
  • shortyStyle
  • SeiYa
  • r2d2rigo