Foros del Web » Programando para Internet » PHP »

Abrir una url y almacenar los datos en una variable

Estas en el tema de Abrir una url y almacenar los datos en una variable en el foro de PHP en Foros del Web. Hola. Estoy en un proyecto de directorio. Me gustaría poner junto a los links de los sitios (urls), una imagen que represente el link. El ...
  #1 (permalink)  
Antiguo 27/09/2010, 11:21
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Sonrisa Abrir una url y almacenar los datos en una variable

Hola. Estoy en un proyecto de directorio. Me gustaría poner junto a los links de los sitios (urls), una imagen que represente el link. El tema es que me parece que copiar y pegar es dificil, porque son cientos de links. El tema es: teniendo el código fuente de la página destino, ¿Cómo podría obtener la url de la imagen a partir de este código fuente? Una vez obtenida este url, la puedo poner en la base de datos o usarla directamente, eso es lo de menos. Bueno, gracias
  #2 (permalink)  
Antiguo 27/09/2010, 12:17
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 13 años, 7 meses
Puntos: 331
Respuesta: Abrir una url y almacenar los datos en una variable

Obtener una imagen a partir de una url parece un poco complejo. Sobre todo porque al leer el contenido de una url y meterlo en una variable, en esa variable encontrarás varias etiquetas img, ¿cómo sabrás cual es la correcta?. Supongo que esto tienes que pensarlo en base a tu sistema y objetivos.
Sin embargo es perfectamente posible, busca un post reciente que publiqué como respuesta que habla de modificar la etiqueta img para agregarle el atributo alt y allí verás un código que te puede servir. Es un caso similar al tuyo, con pocas modificaciones de código lo podrás poner en marcha.
  #3 (permalink)  
Antiguo 27/09/2010, 14:45
 
Fecha de Ingreso: septiembre-2010
Mensajes: 9
Antigüedad: 13 años, 7 meses
Puntos: 0
Respuesta: Abrir una url y almacenar los datos en una variable

Gracias Repara2 por contestar. Una vez almacenado el contenido de la url destino, sería sencillo bucear en el código y buscar la url de la imagen, usando simplemente un poco de manejo de cadenas y en general, usando expresiones regulares.
El otro día use filecontent() (no recuerdo bien si se escribia asi) y me paso que realmente, no solo el código, sino que el sitio destino se mezcló con el mío! (imagenes, fondo!) por eso no lo use mas. Además, me demoraba la carga de la pagina, como 4 veces más lenta.
Pensaba también usar fopen, pero piso en terreno desconocido y no lo he probado. Cualquier aporte, gracias.
  #4 (permalink)  
Antiguo 27/09/2010, 14:56
Avatar de carmagedon  
Fecha de Ingreso: junio-2005
Ubicación: Argentina
Mensajes: 794
Antigüedad: 18 años, 10 meses
Puntos: 23
Respuesta: Abrir una url y almacenar los datos en una variable

Hola, que tal?
Una pregunta, no probaste con ésto?

Código PHP:
Ver original
  1. <?php
  2. function getSource($host,$page) {
  3.   $archivo = file("http://$host/$page");
  4.   reset ($archivo);
  5.       while (list ($clave, $val) = each ($archivo)) {
  6.           echo htmlentities($val).'<br>';
  7.       }
  8. }
  9.  
  10. getSource("www.forosdelweb.com/",""); //Segundo parametro es para el archivo, ej. index.html
  11. ?>

Obviamente ésto te devuelve el código HTML, y luego con ésto tendrías que empezar a parsearlo y obtener lo que deseas. De ultima, si tiene el icono favicon, podés mostrar eso en vez de una imágen o lo que tu pretendes.

Cualquier cosa si no te sirve, vemos como podemos seguir ayudandote.
Un saludo.
__________________
Freelance - Aplicaciones Web
  #5 (permalink)  
Antiguo 27/09/2010, 15:45
Avatar de memoadian
Colaborador
 
Fecha de Ingreso: junio-2009
Ubicación: <?php echo 'México'?>
Mensajes: 3.696
Antigüedad: 14 años, 10 meses
Puntos: 641
Respuesta: Abrir una url y almacenar los datos en una variable

o podrias usar

Código PHP:
Ver original
  1. $url = 'http://web.com';
  2. $source = file_get_contents($url);

mas sencillo.

Etiquetas: almacenar, 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 00:13.