Ir para conteúdo
Fórum Script Brasil
  • 0

Testar URL com PHP


Renato Penna

Pergunta

Boa tarde! Vocês sabem de algum script que teste URLs que realmente funcione ? Fui procurar no Google e achei um exemplo assim:

if(!@fclose(@fopen($url1, 'r')) || (!@fclose(@fopen($$url2, 'r'))))
Mas em alguns casos não funcionou. Depois achei esta função:
function url_exists($url)
    {
        // Version 4.x supported
        $handle   = curl_init($url);
        if (false === $handle)
        {
            return false;
        }
        curl_setopt($handle, CURLOPT_HEADER, false);
        curl_setopt($handle, CURLOPT_FAILONERROR, true);  // this works
        curl_setopt($handle, CURLOPT_HTTPHEADER, Array("User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/20080623 Firefox/2.0.0.15") ); // request as if Firefox    
        curl_setopt($handle, CURLOPT_NOBODY, true);
        curl_setopt($handle, CURLOPT_RETURNTRANSFER, false);
        $connectable = curl_exec($handle);
        curl_close($handle);
        return $connectable;
    }
//    e apliquei desta forma:
    if((!url_exists($url1) || !url_exists($url2)) && ($url1!="" && $url2!=""))
Mas também em alguns casos não funcionou. Agora estou usando esta:
function urlExists($url=NULL)  
    {  
        if($url == NULL) return false;  
        $ch = curl_init($url);  
        curl_setopt($ch, CURLOPT_TIMEOUT, 5);  
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);  
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
        $data = curl_exec($ch);  
        $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);  
        curl_close($ch);  
        if($httpcode>=200 && $httpcode<300){  
            return true;  
        } else {  
            return false;  
        }  
    }
    // sendo aplicada assim:
    if((!urlExists($url1) || !urlExists($url2)) && ($url1!="" && $url2!=""))

Esta eu ainda estou testando, mas não sei se em algum caso vai falhar. Alguém já usou algum scriipt de teste de URL que realmente funcione ? Desde já agradeço.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...