Sou iniciante em PHP e preciso acessar a seguinte página https://www.sefaz.rs.gov.br/Site/index.aspx? com o comando cURL
. Fiz um código aqui que abre o site do google
e salva o resultado em um arquivo txt, esta funcionando corretamente. Ao tentar o mesmo com o site da sefaz
, ele não salva nada no arquivo.
Alguém tem alguma dica?
Segue o código que escrevi:
<?php
$url = 'https://www.sefaz.rs.gov.br/Site/index.aspx?';
$ch = curl_init();
$fp = fopen("pagina_exemplo.txt", "w");
curl_setopt($ch, CURLOPT_URL, "http://www.google.com.br");
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Só para entender, ao invés de www.google.com.br
, trocaria por $url
!
Adicione:
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
Código completo:
<?php
$url = 'https://www.sefaz.rs.gov.br/Site/index.aspx?';
$ch = curl_init();
$fp = fopen("pagina_exemplo.txt", "w");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
curl_exec($ch);
curl_close($ch);
fclose($fp);
Porque não funcionou?
R. Porque é um https diferente de um http, e você precisa informar esse paramentos adicionais no curl.
Faça o teste?
Se não funcionar tem algum bloqueo e/ou restrição do próprio site, só lembrando que você baixa somente HTML disso tudo.
Olá Dragoon muito obrigado pela ajuda !!!
Seguinte, continua a não funcionar !
Eu procurei em alguns lugares e o pessoal comentava ( para outros sites do governo) que teriam cookies, será que pode ser esse o problema? e se for, como faço para trabalhar com esses cookies?
Outra coisa Dragoon, teria alguma forma de eu poder testar e identificar o que faltou? li comentários a respeito de debugger, sabe o que é e como utilizo ( se caso for isso) ?
Sobre baixar somente o HTML, a ideia é quase essa, uma vez que quero trabalhar ( cortar esse HTML) em cima das informações contidas nele !
Forte abraço !
Código modificado e funcional:
<?php
$url = 'https://www.sefaz.rs.gov.br/Site/index.aspx?';
$ch = curl_init();
$fp = fopen("pagina_exemplo.txt", "w");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$result = curl_exec($ch);
fwrite($fp, $result);
curl_close($ch);
fclose($fp);