Comunidad de diseño web y desarrollo en internet online

Expresiones regulares PHP, extraer imagen de un texto

Citar            
MensajeEscrito el 18 Nov 2010 02:35 pm
Hola alguien me puede ayudar a formar una expresión regular para extraer el src de una imagen contendida en un texto?
ejemplo:

Código PHP :

<p><img src="imagen.algo" />Este es el texto que
quiero separar de la imagen</p>

lo que necesito es guardar el src de la imagen y el texto en dos string para manipularlos por separado.
algo asi quedaría

Código PHP :

$laimagen = "imagen.algo";
$eltexto = "Este es el texto que quiero separar de la imagen";

Gracias! :D

Por VictorE

4 de clabLevel



 

Mexico

chrome
Citar            
MensajeEscrito el 18 Nov 2010 03:07 pm

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

firefox
Citar            
MensajeEscrito el 18 Nov 2010 03:15 pm
Para extraer el contenido del atributo "src" podría ser esta expresión regular:

Código :

<img.+src=\"(.*?)\"

funciona incluso si antes de "src" hay otro atributo (como el "alt").
Conste que te paso la expresión regular, tendrás que adaptarla para que sea aceptada en PHP (por las comillas dobles o simples).

Con la otra parte tengo problemas porque no dices si es constante que el texto esté entre los tags <p></p> y si quieres capturar también los posibles tags que haya dentro, por ejemplo en el caso:

Código HTML :

<p><img src="imagen.algo" /><b>E</b>ste es el texto que 
quiero separar de la imagen</p> 

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Nov 2010 03:35 pm
OK esta interezante lo del DOM, pero por lo visto utiliza la librería Curl, pero como sea le echo un vistaso, gracias nax_hh
DriverOp la cosa va asi, tengo un RSS reader en php que carga un feed de joomla, lo que que obtengo lo puedo formatear como con CSS, pero necesito separar la imagen del texto para crear un "thumbnail" y luego a al string que contega solo el texto restringirlo a un numero de caracteres sin importar que tag contenga(h1, p, strong, etc), solo que no se como dividirlo en dos variables jeje

Código PHP :

$eltextocompleto = '<p><img src="imagen.algo" alt="algo"/>El texto que quiero separar</p>';
//ahora que funcion de php uso para extraer el src de la imagen algo como preg_match?
$imagen= preg_match(<img.+src=\"(.*?)\", $eltextocompleto, $imagen);
//y luego cargar en otra variable, el texto pero sin la imagen
$texto_sinlaimagen = a que?

jeje la verdad que estoy frito con esto del uso de expresiones regurales, que puedo hacer?

Por VictorE

4 de clabLevel



 

Mexico

chrome
Citar            
MensajeEscrito el 18 Nov 2010 03:54 pm
Que qué puedes hacer?, pues aprender y practicar :)

La tienes muy fácil entonces, la expresión regular sería:

Código :

<img.+?/>(.*?)</p>


Te sugiero que te bajes The Regex Coach y un buen manual de expresiones regulares...

También te aviso que es en el tercer parámetro de preg_match donde está lo que quieres y que ese parámetro es un array. La función devuelve cero si el patrón no se encontró o uno si se encontró (o false si hay un error).

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 18 Nov 2010 03:57 pm
Ok, a practicar y bajando el The Regex Coach, mil gracias! :D

Por VictorE

4 de clabLevel



 

Mexico

chrome
Citar            
MensajeEscrito el 19 Nov 2010 01:43 pm
OK esta interezante lo del DOM, pero por lo visto utiliza la librería Curl, pero como sea le echo un vistaso, gracias nax_hh

Pues no exactamente... eso lo usé en el ejemplo para tomar el HTML de la página..

puedes usar file_Get_contents o simplemente tenerlo en una variable.

saludos

Por nax_hh

Claber

168 de clabLevel

1 tutorial

 

Reus

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.