Foros del Web » Programando para Internet » PHP »

Validar URL con fopen

Estas en el tema de Validar URL con fopen en el foro de PHP en Foros del Web. Buenas Noches a todos. He buscado por miles de lugares, aca en el foro pero no he podido encontrar una solucion a mi problema, si ...
  #1 (permalink)  
Antiguo 16/09/2011, 01:27
Avatar de alberthbq  
Fecha de Ingreso: septiembre-2011
Ubicación: Punta Arenas, Chile, Chile
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta Validar URL con fopen

Buenas Noches a todos.

He buscado por miles de lugares, aca en el foro pero no he podido encontrar una solucion a mi problema, si es que existe la respuesta les pido comprension.

estoy utilizando la funcion fopen para validar enlaces que escriben en un formulario en una web.
El problema que tengo es que si el sitio web, por ejemplo youtube, tiene página de error personalizadas, me da como resultado que si existe la página que busco aunque en realidad no existe.
Lo "gracioso" es que esto ocurre solamente cuando tengo mi Web en el Servidor (de pago) y cuando lo pruebo en mi PC de forma local, no tiene ningún problema, pense al inicio que podria ser alguna configuracion del php.ini pero al parecer esta todo igual.
Agradesco al que tenga la respuesta.

LBQ
  #2 (permalink)  
Antiguo 16/09/2011, 04:24
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.892
Antigüedad: 18 años
Puntos: 1142
Respuesta: Validar URL con fopen

Todo puede apuntar a un error de tiempo de carga... o sea, que el server se exceda el tiempo de ejecución. Puedes elevarlo, pero creo que lo mejor sería emplear DOM

Saludines
__________________
Consultor SEO / WPO
[EXP] Fuego de Vida ->sitio web
  #3 (permalink)  
Antiguo 16/09/2011, 18:19
Avatar de alberthbq  
Fecha de Ingreso: septiembre-2011
Ubicación: Punta Arenas, Chile, Chile
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: Validar URL con fopen

Bueno, jugando con varios códigos que encontre por varios lados, pude hacer una solucion temporal... y solamente para los videos de youtube, que es lo que necesitaba, descubri gracias a unos POST que youtube cuando un video no existe crea archivos HTML con el texto "Video not found" o "Invalid id" y cuando es correcto abre un XML con el código del vide, entonces utilice el fopen() para abrir la ruta y lei la primera linea con fgets(). ¿Ahora por que diho que es temporal?, por que si youtube cambia los mensajes el código deja de funcionar.
Dejo el código...
Código PHP:
function valida_url($url$vdo)
    {
        if(
strlen($vdo)!=11
        {
            return 
false;
        }
        
$f=@fopen($url,"r");
        if(
$f)
        {
            
$linea fgets($f);
            if((
$linea=="Invalid id")||($linea=="Video not found"))
            {
                @
fclose($f);
                return 
false;
            }
            @
fclose($f);
            return 
true;
        }
        else
        {
            return 
false;
        }
    }
if(
valida_url("http://gdata.youtube.com/feeds/api/videos/ID_VIDEO")==false)) 
    echo 
"El Link de Youtube es invalido";
else
    echo 
"El Link de Youtube es Valido"
  #4 (permalink)  
Antiguo 16/09/2011, 19:05
Avatar de andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Validar URL con fopen

Yo para eso uso una función como esta, no se si te sirva:

Código PHP:
Ver original
  1. <?php
  2. function validarYT($codigo) {
  3.     $url = "http://gdata.youtube.com/feeds/api/videos/$codigo";
  4.     $arr = get_headers($url, 1);
  5.    
  6.     if ($arr[0] == 'HTTP/1.0 404 Not Found') {
  7.         return false;
  8.     }
  9.     if ($arr[0] == 'HTTP/1.0 200 OK') {
  10.         return true;
  11.     }
  12.     return false;
  13. }
  14.  
  15. if (validarYT('QwOiIDKrA12') === true) {
  16.     echo 'Válido';
  17. } else {
  18.     echo 'Inválido';
  19. }
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP

Etiquetas: fopen
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:39.