Como obter dados de um site externo usando PHP

245 0

Quando desenvolvemos sites ou aplicações baseadas em tecnologias Web, provavelmente precisaremos estabelecer conexões com outros sites ou aplicações disponíveis na Web. O problema é que conectar-se a servidores remotos nem sempre é algo fácil, devido as várias regras de segurança que o servidor impõe. Recentemente, precisei por vários motivos, de obter o título de uma página que fosse passada para mim, usando PHP ou Javascript. A solução apareceu com o PHP, usando a biblioteca cURL.

cURL é uma biblioteca que permite a conexão e troca de informações com servidores remotos de uma forma simples. Com o cURL, podemos fazer downloads ou uploads de ficheiros em servidores remotos, fazer login em sites que estão noutros servidores e ainda ter acesso á área de membros destes sites, enfim, as possibilidades são infinitas.

Como exemplo aqui, vou deixar a função que usei para estabelecer a conexão com o site que pretendia e ainda obter o título da página inicial.

function getTitle ( $url ) {
    $site_url = $url; 
    $ch = curl_init(); 
    $timeout = 5; 
    curl_setopt ($ch, CURLOPT_URL, $site_url);
    curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
    ob_start(); 
    curl_exec($ch);
    curl_close($ch);
    $file_contents = ob_get_contents(); 
    ob_end_clean(); 
   if (  preg_match( '/<title>([^<]++)/', $file_contents, $matches ) == FALSE )
       return FALSE;
   return $matches[1]; 
}

Aqui, a url do site é passada no parámetro da função, e então usando funções do cURL, a função faz o download da página em questão. Como apenas faz o download do código HTML da página, ignorando elementos externos, o tempo de execução é mínimo. Defini um tempo de execução 5, mas podia colocar zero para não limitar o tempo de execução. Depois, usando expressões regulares, a função apenas obtem o valor definido entre as tags <title> e </title> , ignorando o resto.

Este é um exemplo básico do uso do cURL, que conseguiu resolver meus problemas. Para mais funções do cURL aconselho o uso do livro Webbots, Spiders, and Screen Scrapers: A Guide to Developing Internet Agents with PHP/CURL disponível na Amazon.

(Visited 1.144 times, 1 visits today)

Elisio Leonardo

Elisio Leonardo is an experienced Web Developer, Solutions Architect, Digital Marketing Expert, and content producer with a passion for technology, artificial intelligence, web development, and entertainment. With nearly 15 years of writing engaging content on technology and entertainment, particularly Comic Book Movies, Elisio has become a trusted source of information in the digital landscape.