Foros del Web » Programando para Internet » PHP »

Conseguir url de la primera imagen de la página actual

Estas en el tema de Conseguir url de la primera imagen de la página actual en el foro de PHP en Foros del Web. Hola, ¿Cómo puedo conseguir la primera imagen de la página actual mediante php? (o mediante javascript, o como sea..., en realidad no me importa el ...
  #1 (permalink)  
Antiguo 07/01/2015, 22:28
 
Fecha de Ingreso: enero-2015
Mensajes: 1
Antigüedad: 9 años, 3 meses
Puntos: 0
Conseguir url de la primera imagen de la página actual

Hola,

¿Cómo puedo conseguir la primera imagen de la página actual mediante php? (o mediante javascript, o como sea..., en realidad no me importa el método).

Es decir, quiero que, por ejemplo, este enlace me lleve a la primera de las imágenes (o a la única que haya, si solo hay una) que hay en la página en la que se encuentre dicho enlace:

<a href="QUIERO-QUE-APAREZCA-AQUÍ-LA-URL-DE-LA-PRIMERA-IMAGEN-DE-LA-PAGINA-ACTUAL">Enlace</a>

EDITO: En realidad me he dado cuenta de que no quiero la primera exactamente, ya que, si no, siempre me aparecería la de la cabecera.... De modo que me gustaría poder especificar exactamente cual es su posición... o algo que sea "la primera a partir de aquí" o algo así.

Un saludo. Gracias.

PD: Perdón si he sido demasiado reiterativa ^^ Espero que se haya entendido .

Última edición por Gazpacha; 07/01/2015 a las 22:40
  #2 (permalink)  
Antiguo 08/01/2015, 08:49
Avatar de seRgiOOOOOO  
Fecha de Ingreso: noviembre-2011
Mensajes: 35
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Conseguir url de la primera imagen de la página actual

puedes utilizar la libreria simplehtmldom, con esta libreria puedes coger los elementos que querias, en este caso los tags <img>

te descargas la libreria (http://simplehtmldom.sourceforge.net/)

y con este codigo recorres toda la web buscando imagenes. creo un contador, cuando el contador sea 1 estara mirando la segunda imagen de la web, y la guardo en la variable
$imagenQueBusco, despues de eso pongo un break para parar el loop ya que si ya la has encontrado no tiene sentido seguir buscando.

Código PHP:
$i 0
// Find all images
foreach($html->find('img') as $element){
       if (
$i == 1) {
               
$imagenQueBusco $element->src;
               break;
       }
       
$i++;
}

echo 
$imagenQueBusco
  #3 (permalink)  
Antiguo 08/01/2015, 09:18
Avatar de fbedia  
Fecha de Ingreso: julio-2010
Mensajes: 159
Antigüedad: 13 años, 9 meses
Puntos: 8
Respuesta: Conseguir url de la primera imagen de la página actual

Hice este pequeño script que espero que te sirva:

Código PHP:
Ver original
  1. <?php
  2. //guardo en $content el codigo fuente de la web que quiero extraer las imagenes
  3. $content=implode('',file('http://www.forosdelweb.com/f18/conseguir-url-primera-imagen-pagina-actual-1117890/'));
  4. //la expresion regular a usar... puedes refinarla a tu antojo
  5. $expresion= '@src="([^"]+)"@';
  6. //saco las coincidencias a un array
  7. preg_match_all($expresion,$content,$considencias);
  8. //pinto el array
  9. print_r($considencias);
  10. ?>

Este script basicamente lo que hace es recorrer el codigo fuente y extraer los "src="
Puedes cambiar la expresion regular a tu antojo para que solo coja desde el http y dentro de un tag <img
A mi se me dan mal las expresiones regulares, por lo que para el ejemplo lo he apañado de esta forma...

Una vez tengas el array con todas las imagenes, puedes sacar la imagen de la posicion que quieras: primera, 5º, ultima..etc....

El resultado de lo anterior es el siguiente:
Cita:
Array ( [0] => Array ( [0] => src="http://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/yahoo-dom-event/yahoo-dom-event.js?v=387" [1] => src="http://ajax.googleapis.com/ajax/libs/yui/2.9.0/build/connection/connection-min.js?v=387" [2] => src="http://static.forosdelweb.com/clientscript/vbulletin_global.js?v=387" [3] => src="http://static.forosdelweb.com/clientscript/fdw_menu.js?v=1" [4] => src="http://static.forosdelweb.com/clientscript/fdw_header.js?v=1" [5] => src="http://static.forosdelweb.com/clientscript/vbulletin_post_loader.js?v=387" [6] => src="http://static.forosdelweb.com/images/misc/unknown.gif" [7] => src="http://static.forosdelweb.com/clientscript/vbulletin_ajax_tagsugg.js?v=387" [8] => src="http://static.forosdelweb.com/clientscript/fdw_ajax_tagsugg.js?v=387" [9] => src="http://static.forosdelweb.com/clientscript/fdw_ajax_eval.js" [10] => src="http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif" [11] => src="http://static.forosdelweb.com/fdwtheme/images/smilies/afirmar.gif" [12] => src="http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif" [13] => src="http://static.forosdelweb.com/customavatars/avatar445885_1.gif" [14] => src="http://static.forosdelweb.com/images/misc/11x11progress.gif" [15] => src="http://static.forosdelweb.com/clientscript/vbulletin_ajax_taglist.js?v=387" [16] => src="http://static.forosdelweb.com/clientscript/vbulletin_ajax_tagsugg.js?v=387" [17] => src="http://static.forosdelweb.com/fdwtheme/images/buttons/reply.gif" [18] => src="http://static.forosdelweb.com/clientscript/vbulletin_facebook.js?v=102" [19] => src="http://connect.facebook.net/es_LA/all.js" [20] => src="http://static.forosdelweb.com/images/misc/facebook_login.gif" ) [1] => Array ( [0] => http://ajax.googleapis.com/ajax/libs...event.js?v=387 [1] => http://ajax.googleapis.com/ajax/libs...n-min.js?v=387 [2] => http://static.forosdelweb.com/client...lobal.js?v=387 [3] => http://static.forosdelweb.com/client...dw_menu.js?v=1 [4] => http://static.forosdelweb.com/client..._header.js?v=1 [5] => http://static.forosdelweb.com/client...oader.js?v=387 [6] => http://static.forosdelweb.com/images/misc/unknown.gif [7] => http://static.forosdelweb.com/client...gsugg.js?v=387 [8] => http://static.forosdelweb.com/client...gsugg.js?v=387 [9] => http://static.forosdelweb.com/client...w_ajax_eval.js [10] => http://static.forosdelweb.com/fdwthe...n/post_old.gif [11] => http://static.forosdelweb.com/fdwthe...es/afirmar.gif [12] => http://static.forosdelweb.com/fdwthe...n/post_old.gif [13] => http://static.forosdelweb.com/custom...ar445885_1.gif [14] => http://static.forosdelweb.com/images...11progress.gif [15] => http://static.forosdelweb.com/client...glist.js?v=387 [16] => http://static.forosdelweb.com/client...gsugg.js?v=387 [17] => http://static.forosdelweb.com/fdwthe...tons/reply.gif [18] => http://static.forosdelweb.com/client...ebook.js?v=102 [19] => http://connect.facebook.net/es_LA/all.js [20] => http://static.forosdelweb.com/images...book_login.gif ) )
__________________
Follow me on twitter @franbedia

Etiquetas: actual, conseguir, página, primera, url
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 11:45.