Estou com um problema aqui, que de inicio pensei que fosse na expressão regular, mas ai fiz um teste com valores diferentes e foi normal.
O que eu quero fazer?
Pegar o código fonte de uma página, e atravéz de um preg_match() tudo o que está detro de <body> e </body>.
Qual o problema?
é um pouco estranho, eu peguei o html de uma página com file_get_contents() e exibi na página, ai funcionou, mas ai eu preciso tirar o head, o que me interessa é o conteudo, então usei uma expressão simples(@<body>(.*?)<\/body>@), mas nada feito, não exibiu nada. Então ao invés de usar o html retornado pela file_get_contents() usei criei uma string: <html><body>das</body></html>.
Usei a mesma expressão e me retornou: <body>das</body>, exatamente como o planejado.
Mas de jeito nenhum consigo fazer funcionar com o html vindo de file_get_contents()
<?php
$pagina[0]['url'] = 'http://localhost/busca/siteTeste/index.html';
$pagina[0]['html'] = file_get_contents($pagina[0]['url']);
echo '<h1>HTML ORIGINAL DA PÁGINA: http://localhost/siteTeste/index.html</h1>'.htmlentities($pagina[0]['html']);
/*
Inprime normalmente o html da página: http://localhost/siteTeste/index.html
*/
$html = '<html><head><title></title></head><body>gfsdgdfg<b>fdsfsd</b>dfg</body></html>';
preg_match("/<body>(.*)<\/body>/", $html, $p);
echo '<hr /><h1>Conteudo entre <body>e</body> de $html</h1>'.htmlentities($p[0]);
/*
Imprime: <body>gfsdgdfg<b>fdsfsd</b>dfg</body>
*/
preg_match("/<body>(.*?)<\/body>/", $pagina[0]['html'], $p);
echo '<hr /><h1>Conteudo entre <body>e</body> da página(http://localhost/siteTeste/index.html)</h1>'.htmlentities($p[0]);
/*
Não imprime nada
*/
?>
Pergunta
vini_loock
Iai galera, como vai?!
Estou com um problema aqui, que de inicio pensei que fosse na expressão regular, mas ai fiz um teste com valores diferentes e foi normal.
O que eu quero fazer?
Pegar o código fonte de uma página, e atravéz de um preg_match() tudo o que está detro de <body> e </body>.
Qual o problema?
é um pouco estranho, eu peguei o html de uma página com file_get_contents() e exibi na página, ai funcionou, mas ai eu preciso tirar o head, o que me interessa é o conteudo, então usei uma expressão simples(@<body>(.*?)<\/body>@), mas nada feito, não exibiu nada. Então ao invés de usar o html retornado pela file_get_contents() usei criei uma string: <html><body>das</body></html>.
Usei a mesma expressão e me retornou: <body>das</body>, exatamente como o planejado.
Mas de jeito nenhum consigo fazer funcionar com o html vindo de file_get_contents()
Ai nesse cód tem os 3 modos que cite acima.
É isso.
Vlw.
Vinicius
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.