Foros del Web » Programando para Internet » PHP »

Comprobar la URL de una imagen con PHP...¿Posible?

Estas en el tema de Comprobar la URL de una imagen con PHP...¿Posible? en el foro de PHP en Foros del Web. Tengo una sección de artículos y cada uno de ellos contiene una imagen (la que el usuario elija), pero ésta no se sube al servidor, ...
  #1 (permalink)  
Antiguo 26/04/2006, 10:07
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Comprobar la URL de una imagen con PHP...¿Posible?

Tengo una sección de artículos y cada uno de ellos contiene una imagen (la que el usuario elija), pero ésta no se sube al servidor, sino indican la URL de una imagen ya existente en la red.

Los artículos son revisados antes de ser publicados, por lo que si la URL no es correcta se puede rectificar o denegar. No obstante, con el tiempo, éstas imagenes pueden ir desapareciendo de sus respectivos servidores de donde son "linkeadas". Por eso me gustaría saber si se puede comprobar la dirección URL, y si no existe, mostrar una imagen alternativa o texto.

La pregunta es... ¿Se puede comprobar con PHP si una url de imagen existe?

Gracias

PD: Sé que algunos me recomendaréis que guarde las imagenes en mi FTP, pero por diversas cuestiones prefiero tenerlo así.
  #2 (permalink)  
Antiguo 26/04/2006, 10:59
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
http://cl.php.net/manual/es/function.file-exists.php
  #3 (permalink)  
Antiguo 26/04/2006, 14:51
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Tengo entendido que el file_exists sirve sólo para rutas relativas y a mí me interesa comprobar URLs externas...¿Alguna sugerencia?

Gracias
  #4 (permalink)  
Antiguo 26/04/2006, 14:53
Avatar de eft0  
Fecha de Ingreso: junio-2003
Ubicación: Santiago - Chile
Mensajes: 635
Antigüedad: 20 años, 10 meses
Puntos: 9
Claro, fopen()

;) Saludos
  #5 (permalink)  
Antiguo 26/04/2006, 14:59
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Dice que en php5 se pueden leer urls.
Mas abajo hay ejemplos de como leer urls si no se tiene php5. Como este que tal vez sirva:

Código PHP:
<?php
   
function url_exists($url) {
       
$a_url parse_url($url);
       if (!isset(
$a_url['port'])) $a_url['port'] = 80;
       
$errno 0;
       
$errstr '';
       
$timeout 30;
       if(isset(
$a_url['host']) && $a_url['host']!=gethostbyname($a_url['host'])){
           
$fid fsockopen($a_url['host'], $a_url['port'], $errno$errstr$timeout);
           if (!
$fid) return false;
           
$page = isset($a_url['path'])  ?$a_url['path']:'';
           
$page .= isset($a_url['query'])?'?'.$a_url['query']:'';
           
fputs($fid'HEAD '.$page.' HTTP/1.0'."\r\n".'Host: '.$a_url['host']."\r\n\r\n");
           
$head fread($fid4096);
           
fclose($fid);
           return 
preg_match('#^HTTP/.*\s+[200|302]+\s#i'$head);
       } else {
           return 
false;
       }
   }
?>
  #6 (permalink)  
Antiguo 26/04/2006, 15:01
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 2 meses
Puntos: 20
Pero yo tengo PHP4... ¿Servirá?
  #7 (permalink)  
Antiguo 26/04/2006, 15:42
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Sirve por que el ejemplo tiene ese objetivo. Ya lo decía en el post anterior.
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 19:30.