MouraEEM 0 Denunciar post Postado Setembro 17, 2012 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
Gabriel Jacinto 74 Denunciar post Postado Setembro 17, 2012 Se você não conseguiu com o file_get_contents, use a classe :seta:DOMDocument. Compartilhar este post Link para o post Compartilhar em outros sites
MouraEEM 0 Denunciar post Postado Setembro 17, 2012 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
MouraEEM 0 Denunciar post Postado Setembro 18, 2012 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
MouraEEM 0 Denunciar post Postado Setembro 18, 2012 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