Usando a biblioteca Curl no PHP para trabalhar com recursos remotos
Nos dois exemplos anteriores, você pode notar que usamos a função curl_setopt() para definir como a página seria acessada. Definindo mais opções, nós podemos perceber a força do Curl e o tudo o q ele torna possível.
Vamos testar um pouco mais:
Se você consultar o manual pela função curl_setopt(), você irá encontrar uma vasta lista de opções. Vamos testar as mais interessantes:
A primeira opção é a “CURLOPT_FOLLOWLOCATION”. Quando definida como TRUE, Curl automaticamente segue qualquer redirecionamento feito pela página. Por exemplo, se uma página PHP usa header("Location: http://url"), curl vai automaticamente segui-la:
Se o Google decidir por redirecionar, o exemplo anterior irá seguir para o novo local. Outras duas opções relacionadas à esta ação são as opções “CURLOPT_MAXREDIRS” e “CURLOPT_AUTOREFERER”.
A opção “CURLOPT_MAXREDIRS”, permite a você escolher quantos redirecionamentos poderão ser seguidos. Se a opção “CURLOPT_AUTOREFERER” estiver definida como TRUE, Curl irá automaticamente incluir o cabeçalho Referer em cada redirecionamento.
A próxima é a opção “CURLOPT_POST”. Esta é uma opção muito útil, a partir da idéia de que ela possibilita a você fazer requisições via POST, ao invés de requisições GET, que atualmente significa que você pode submeter um form para outras páginas sem estar atualizado.
O exemplo a seguir demonstra essa idéia:
E o form.php:
Como você pode perceber, está opção torna fácil o submit de forms e é uma ótima maneira de testarmos nossos forms sem a obrigação de preenchermos todas às vezes.
A opção “CURLOPT_CONNECTTIMEOUT”, é usada para definir quanto tempo a Curl deve esperar por uma tentativa de conexão. Esta é uma opção muito importante para evitar uma parada em seu script. Uma opção também relacionada a este assunto é a “CURLOPT_TIMEOUT”, que é usada para definir quantas requisições são permitidas.
A última opção é a “CURLOPT_USERAGENET”, que permite a você definir o usuário de uma requisição. Isto torna possível a criação de seu próprio “Buscador”:
Vamos testar um pouco mais:
Se você consultar o manual pela função curl_setopt(), você irá encontrar uma vasta lista de opções. Vamos testar as mais interessantes:
A primeira opção é a “CURLOPT_FOLLOWLOCATION”. Quando definida como TRUE, Curl automaticamente segue qualquer redirecionamento feito pela página. Por exemplo, se uma página PHP usa header("Location: http://url"), curl vai automaticamente segui-la:
<?php $ch = curl_init(); // informar URL e outras funções ao CURL curl_setopt($ch, CURLOPT_URL, "http://www.google.com/"); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // Acessar a URL e imprimir a saída curl_exec($ch); ?>
Se o Google decidir por redirecionar, o exemplo anterior irá seguir para o novo local. Outras duas opções relacionadas à esta ação são as opções “CURLOPT_MAXREDIRS” e “CURLOPT_AUTOREFERER”.
A opção “CURLOPT_MAXREDIRS”, permite a você escolher quantos redirecionamentos poderão ser seguidos. Se a opção “CURLOPT_AUTOREFERER” estiver definida como TRUE, Curl irá automaticamente incluir o cabeçalho Referer em cada redirecionamento.
A próxima é a opção “CURLOPT_POST”. Esta é uma opção muito útil, a partir da idéia de que ela possibilita a você fazer requisições via POST, ao invés de requisições GET, que atualmente significa que você pode submeter um form para outras páginas sem estar atualizado.
O exemplo a seguir demonstra essa idéia:
<?php $ch = curl_init(); // informar URL e outras funções ao CURL curl_setopt($ch, CURLOPT_URL, "http://projects/phpit/content/using%20curl%20php/demos/handle_form.php"); // Faz um POST $data = array('name' => 'Renato', 'surname' => 'Bonicio'); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $data); // Acessar a URL e imprimir a saída curl_exec($ch); ?>
E o form.php:
<?php echo '<h3>Variáveis que eu recebi: </h3>'; echo '<pre>'; print_r ($_POST); echo '</pre>'; ?>
Como você pode perceber, está opção torna fácil o submit de forms e é uma ótima maneira de testarmos nossos forms sem a obrigação de preenchermos todas às vezes.
A opção “CURLOPT_CONNECTTIMEOUT”, é usada para definir quanto tempo a Curl deve esperar por uma tentativa de conexão. Esta é uma opção muito importante para evitar uma parada em seu script. Uma opção também relacionada a este assunto é a “CURLOPT_TIMEOUT”, que é usada para definir quantas requisições são permitidas.
A última opção é a “CURLOPT_USERAGENET”, que permite a você definir o usuário de uma requisição. Isto torna possível a criação de seu próprio “Buscador”:
<?php $ch = curl_init(); // informar URL e outras funções ao CURL curl_setopt($ch, CURLOPT_URL, "http://www.useragent.org/"); curl_setopt($ch, CURLOPT_USERAGENT, 'My custom web spider/0.1'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // acessa a URL e imprime a saída curl_exec($ch); ?>
Gostei muito do mini tutorial!, inclusive estou fazendo uma aplicação com o curl, está sendo de grande utilidade!
03/03/2010 11:52pm
(~14 anos atrás)
Curl é demais.
O interessante é que ela eh disponível para muuitas linguagens (já usei com PHP e com C) e tem um potencial muito bom pra recuperar informações da internet, trabalhar com formulários!
É coisa de primeira!
Parabéns pelo artigo com exemplos relevantes!
O interessante é que ela eh disponível para muuitas linguagens (já usei com PHP e com C) e tem um potencial muito bom pra recuperar informações da internet, trabalhar com formulários!
É coisa de primeira!
Parabéns pelo artigo com exemplos relevantes!
03/11/2009 9:59am
(~15 anos atrás)