Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MouraEEM

[Resolvido] Como pegar o conteúdo de uma página

Recommended Posts

Olá,

 

Tenho um programa PHP que deve ler o conteúdo de uma página HTML sem que o usuário tenha que interagir. O problema é que esta página HTML deve ser chamada com o método POST.

 

Fiz uma página HTML (pagina1.html) que chama uma outra (pagina2.html) via um FORM com o método POST, utilizando java script

<script type="text/javascript">
   document.getElementById('pesquisa01').submit();
</script>

O nome pesquisa01 é o nome do FORM que estou submetendo sem o uso do botão. Assim a segunda página HTML é chamada automáticamente.

 

No programa PHP tentei pegar o conteúdo da pagina1.html, querendo pegar o conteúdo da página2.html com file_get_contents($url) e com curl_init(), mas não deu certo. O que retorna é sempre o conteúdo da pagina1.html

 

Imaginei fazer uma função em PHP, substituindo a página1.html, chamando a página2.html em uma função, por exemplo, mas neste caso não sei como poderia fazer para pegar o conteúdo que estaria retornando da chamada interna do programa PHP.

 

OBS: a pagina2.html não é minha. Esta página é chamada pelo método POST e o quero é saber se uma determinada palavra existe nesta página.

 

Por favor, alguém pode me dar uma dica....

 

Obrigado,

 

Moura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você não conseguiu com o file_get_contents, use a classe :seta:DOMDocument.

 

Olá Grabiel, obrigado por sua resposta, mas o problema é que a página que tenho que acessar é na verdade a resposta de um FORM com um método POST. Se fosse GET ou uma página estática, beleza, mas não é.

 

Obrigado assim mesmo.

 

Abs,

 

Moura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá pessoal,

 

Vou tentar explicar de uma outra forma...

 

Quero ver se no conteúdo da página há uma palavra específica.

 

Há uma página, vou dar o nome de pagina_resultado.html. Esta página (pagina_resultado.html) é a resposta de uma pesquisa.

 

Essa pesquisa é feita partindo da página que vou dar o nome de pagina_pesquisa.html.

 

Na pagina_pesquisa.html há um FORM com o método POST.

 

O que fiz foi na pagina_pesquisa.html inserir java script para submeter o FORM sem o botão, fazendo ela pesquisar automaticamente na pagina_resultado.html.

 

No PHP tentei ler o conteúdo da pagina_pesquisa.html imaginando que pegaria o conteúdo da pagina_resultado.html, pois a pagina_pesquisa.html estaria fazendo como se fosse um redirecionamento para pagina_resultado.html.

 

Não deu certo. O conteúdo que pego é sempre da pagina_pesquisa.html.

 

Tentei também usar o iframe dentro da pagina_pesquisa.html, mas também não deu certo. Quando vou pegar o conteúdo no PHP, o que vem é sempre da pagina_pesquisa.html e não da pagina_resultado.html.

 

Imaginei colocar o código da página_pesquisa.html dentro do PHP e chamar a pagina_resultado.html de dentro do programa PHP, mas neste caso não sei como pegar o conteúdo dessa chamada.

 

Por favor, se tiver alguém tiver alguma sugestão....

 

Obrigado,

 

Moura

Compartilhar este post


Link para o post
Compartilhar em outros sites

Resolvido:

 

A solução foi utilizar curl com uma chama HTML com o método POST

 

O código ficou assim:

 

Campo1,Campo2,Campo3 e Campo4 são campos que estariam em um FORM com o método POST ou GET (neste caso POST)

 

$url = 'http://<url que deseja pesquisar>';
$fields = array(
           'campo1' => urlencode("valor1"),
           'campo2' => urlencode("valor2"),
           'campo3' => urlencode("valor3"),
           'campo4' => urlencode("valor4")
       );


foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//abre a conexão
$ch = curl_init();

//seta a url, quantidade de variaveis do POST, e valores do POST
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);

//executa o POST
$resultado = curl_exec($ch);

//fecha a conexão
curl_close($ch);

 

A variável $resultado contém o conteúdo da página que retornou do POST

 

É isso.

 

Moura

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.