Artigos & Ideias

[PHP] Download Conteúdo URL com cURL

Escrito por:

É comum na internet, fazer-se o download do conteúdo de uma URL específica, especialmente devido ao aumento da utilização de serviços web e as APIs oferecidas pelo Amazon, Alexa, Digg, etc…
A biblioteca cURL PHP, que muitas vezes vêm nas configurações dos hosts, permite aos programadores web realizar esta tarefa.

O Código PHP

/* Obtém o conteúdo do URL */
function obterConteudo($link)
{
	$curl= curl_init();
	$expira = 5;
        $agente = ‘Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)’;
        curl_setopt($curl, CURLOPT_USERAGENT, $agente);
        curl_setopt($curl, CURLOPT_FAILONERROR, true);
        curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($curl, CURLOPT_AUTOREFERER, true);
        curl_setopt($curl, CURLOPT_TIMEOUT, 10);
	curl_setopt($curl,CURLOPT_URL,$link);
	curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($curl,CURLOPT_CONNECTTIMEOUT,$expira);
	$conteudo = curl_exec($curl);
	curl_close($curl);
	return $conteudo;
}

Como Usar

$conteudo_retornado = obterConteudo('http://cgoncalves.com');

Em alternativa, podes usar a remotamente a função file_get_contents, mas muitos hosts não permitem isso.

2


Sobre o Autor

Carlos Gonçalves é um Freelancer com bastante experiência em linguagens de programação e webdesign. Vocacionado para as novas tecnologias, aposta na qualidade dos serviços, atendimento rápido e sempre disponível para melhor satisfazer os seus clientes. Autor do site cgoncalves.com

Comentários

  1. Dariojr  23 Julho 2010

    Carlos, na linha curl, gostaria de saber se é possível baixar arquivs pdf via PHP usando este método.

    Um forte abraço.

    (responder)
    • Carlos Gonçalves  24 Julho 2010

      Olá Dariojr, o conteúdo do PDF através deste método não é possível de obter.

      Agora fazer download do ficheiro sim, podes usar algo como:

       $url  = 'http://www.meudominio.com/ficheiro.pdf';
          $path = '/caminho-para-o-ficheiro.pdf';
      
          $ch = curl_init($url);
          curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
      
          $data = curl_exec($ch);
      
          curl_close($ch);
      
          file_put_contents($path, $data);

      Abraço

      (responder)

Comentar

Nota: A moderação de comentários está activada e pode atrasar o teu comentário. Não há necessidade de reenviares o teu comentário.

More in Outros (1 of 12 articles)

# #