Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/02/2014, 07:03
Avatar de fbedia
fbedia
 
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 14 años, 4 meses
Puntos: 8
expresion regular..no se como hacerlo

Buenas! llevo cerca de 1 hora dando vueltas a como hacer una expresión regular... a ver si me pueden ayudar!!

quiero que cuando un usuario ponga:

Código:
[ img ]http://www.rutaimagen.com/imagen.jpg[/ img ]
se sustituya por:

Código:
<img src='http://www.rutaimagen.com/imagen.jpg' alt='http://www.rutaimagen.com/imagen.jpg'/>
El siguiente código me funciona bien:

Código:
$buscar = array(
	"/\[img\](.*?)\[\/img\]/is"
	); 
	
$remplazar = array(
	"<img src='$1' alt='$1' />"
	);
	
    $texto = preg_replace ($buscar, $remplazar, $texto);
Lo que quiero hacer como mejora al code anterior, es hacer que la expresión regular pase si:
- empieza por "http"
- termina por ".jpg" ".gif" ".png"

Es decir.... seria formar:
1º: ^http (para indicar que empieze por http)
2º: . (el punto para indicar que puede venir cualquier caracter)
3º: .jpg$|.gif$|.png$ (para indicar que termine por .jpg, gif o png)

El problema es que no se como conformar lo anterior... he probado de 10000 formas diferentes pero nada de nada...
aca las ultimas..:
"/\[img\](^http(.*?)\[\/img\]/is"
"/\[img\](^http+(.*?)\[\/img\]/is"
"/\[img\]^http.*?)\[\/img\]/is"
"/\[img\](^http.[[:graph:]])\[\/img\]/is"

Gracias por su ayuda
__________________
Follow me on twitter @franbedia