Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Extraer URL con expresiones regulares

Estas en el tema de Extraer URL con expresiones regulares en el foro de PHP en Foros del Web. Hola, bueno estoy tratando de hacer un slideshow con las ultimas noticias de una pagina X que se alimenta del RSS de la pagina X... ...
  #1 (permalink)  
Antiguo 24/01/2013, 23:04
 
Fecha de Ingreso: diciembre-2008
Mensajes: 20
Antigüedad: 15 años, 4 meses
Puntos: 3
Pregunta Extraer URL con expresiones regulares

Hola, bueno estoy tratando de hacer un slideshow con las ultimas noticias de una pagina X que se alimenta del RSS de la pagina X...

Bueno, en fin ya logre sacar el Titulo, la fecha, el extracto (descripción corta)y el enlace de la entrada, ahora solo me falta sacar el url de la imagen destacada,
solo que no tiene imagen destacada, en el contenido del post existen varias imágenes, y solo quiero extraer el URL de la primera que aparezca.

Aqui un fragmento del RSS de donde quiero sacar la url de la primer imagen:

Código HTML:
<title>Descenso en SUP en la Barra de Colotepec, Puerto Escondido, Oax. Mexico.</title>
<link>http://centralsurf.tv/noticias/descenso-en-sup-en-la-barra-de-colotepec-puerto-escondido-oax-mexico/</link>
<content:encoded>
<![CDATA[<p>Esta mañana <strong>Central Surf</strong> organizó un descenso con paddleboard<strong> </strong>en el rió de <span style="font-size: 13px; line-height: 19px;"><strong>La Barra de Colotepec</strong>, esto con la finalidad de promocionar el deporte del <strong>SUP</strong> <em>(Stand Up Paddleboard)</em> y dar a conocer estos maravillosos lugares fomentando el turismo, bla bla bla, no importa
<p>A continuación las imágenes de este día y mañana viernes disfruten la transmisión de lo que aconteció.</p>
<a href="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9735.JPG" rel="lightbox[16853]" title="Descenso en SUP en la Barra de Colotepec, Puerto Escondido, Oax. Mexico."><img src="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9735.JPG" alt="" width="600" height="400" /></a>

<a href="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9741.JPG" rel="lightbox[16853]" title="Descenso en SUP en la Barra de Colotepec, Puerto Escondido, Oax. Mexico."><img src="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9741.JPG" alt="" width="600" height="400" /></a>

<a href="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9744.JPG" rel="lightbox[16853]" title="Descenso en SUP en la Barra de Colotepec, Puerto Escondido, Oax. Mexico."><img src="http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9744.JPG" alt="" width="600" height="400" /></a>

Continuan muchas fotos pero no tiene caso ponerlas]]></content:encoded> 
y aqui el codigo que uso para sacar las otras variables

Código PHP:
<?
        
function populate ($xml){ 
            
preg_match ("/<title> (.*) <\/title>/xsmUi"$xml$matches); 
            
$this->title $matches[1]; 
            
preg_match ("/<link> (.*) <\/link>/xsmUi"$xml$matches); 
            
$this->url $matches[1]; 
            
preg_match ("/<description><!\[CDATA\[(.*) \]\]><\/description>/xsmUi"$xml$matches); 
            
$this->description $matches[1];
            
preg_match ("/<pubDate>(.*)\+0000<\/pubDate>/xsmUi"$xml$matches); 
            
$this->date $matches[1];
?>
He intentado con esto:

Código PHP:
            preg_match("/<content:encoded><!\[CDATA\[<img\s+.*?src=[\"\']?([^\"\' >]*)[\"\']?[^>]*>\]\]><\/content:encoded>/xsmUi"$xml$matches); 
            
$this->image $matches[1]; 
Pero no logro sacar el URL de esa imagen quisiera que solo me devuelva :
http://centralsurfmagazine.com/subir/uploads/Notisurf-24-01-2013/IMG_9735.JPG
  #2 (permalink)  
Antiguo 24/01/2013, 23:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Extraer URL con expresiones regulares

Esa expresión no te va a funcionar jamás, y eso se debe a que no estás tomando en cuenta que puede existir otro tipo de texto al rededor de la etiqueta de imagen.

Tu expresión asume que no hay nada entre la etiqueta del XML y la de imagen, evidentemente eso no es cierto.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 25/01/2013, 11:46
 
Fecha de Ingreso: diciembre-2008
Mensajes: 20
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Extraer URL con expresiones regulares

ok, gracias por responder, evidentemente no se mucho de php y menos de expresiones regulares, las otras expresiones las fui formando con prueba y error, fue mas facil puesto que no hay nada mas entre las etiquetas que lo que yo necesitaba, por eso estoy pidiendo ayuda...

que haria falta agregar?

algo como esto?
Código PHP:
            preg_match("/<content:encoded><!\[CDATA\[(.*)<img\s+.*?src=[\"\']?([^\"\' >]*)[\"\']?[^>]*>\]\]>(.*)<\/content:encoded>/xsmUi"$xml$matches); 
  #4 (permalink)  
Antiguo 25/01/2013, 16:06
 
Fecha de Ingreso: diciembre-2008
Mensajes: 20
Antigüedad: 15 años, 4 meses
Puntos: 3
Respuesta: Extraer URL con expresiones regulares

Una vez mas, lo he logrado por mi mismo, investigando un poco, como debe ser, aprecio este foro tambien porque aunque no preguntando aqui mismo investigo a veces... Gracias

a quien le interese lo logre de la siguiente manera

Código PHP:
            preg_match('/<img[^>]*src="([^"]*)"[^>]*>/'$xml$matches);
            
$this->image $matches[1]; 

Etiquetas: expresiones, regulares, url, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:58.