Para capturar uma página web utilizamos a função
ob_start(), que nada mais faz do que guardar em um buffer todo o conteúdo de uma página HTML.
Eis duas maneiras legais de se fazer isso:
1. Por link direto
Você pode capturar qualquer página existente na rede no meio do código:
<?php
// Começa a captura da página.
ob_start();
// Imprime a página, mas ela não irá aparecer, porque será guardada
// no buffer.
include("http://www.paginadainternet.com,br");
// Pega a guardada pelo buffer e salva na variável "$conteudo".
$conteudo = ob_get_contents();
// Limpa o buffer.
ob_end_clean();
?>
A página será salva em "$conteudo" e você poderá fazer o que quiser com que está dentro dela.
2. Gerada na hora
Essa é a que mais gosto, pois você pode gerar a página na hora e enviar por email ou outra utilidade que você precisar. Para isso, a PRIMEIRA coisa que você tem que colocar na página a ser gerada é o "ob_start()".
<?php
// Começa a captura da página.
ob_start();
?>
<html>
...
RESTO DA PÁGINA
...
</html>
<?php
// Pega a página guardada pelo buffer e salva na variável "$conteudo".
$conteudo = <a href="http://br2.php.net/manual/en/function.ob-get-contents.php">ob_get_contents()</a>;
// Limpa o buffer.
<a href="http://br2.php.net/manual/en/function.ob-end-clean.php">ob_end_clean()</a>;
?>
Simplesmente é a mesma coisa que o primeiro modo, a diferença é que ele captura a página que nós mesmos geramos. Pode ter inclusive código PHP no meio, o que é capturado é a saída da página.
E novamente avisando, a página não será mostrada porque ela será armazenada no buffer.
Para armazenar no buffer e ainda ver a página, apenas imprima de novo usando "$conteudo":
<?php
// Limpa o buffer.
ob_end_clean();
// Imprime o conteudo de "$conteudo", ou seja, mostra a página mesmo.
print $conteudo;
?>
E podemos ainda enviar por email:
<?php
// Limpa o buffer.
ob_end_clean();
// Imprime o conteudo de "$conteudo", ou seja, mostra a página mesmo.
print $conteudo;
// Função "<a href="http://php.net/manual/en/function.mail.php">mail()</a>" do PHP envia emails.
// Email do remetente.
$from="fulano@mail.com";
// Assunto do email.
$subject="Minha página capturada DUDE !";
// A mensagem do email, no caso, é a página capturada.
$message=$conteudo;
// Determina o tipo de stream enviado, no caso, é um html.
$header="Content-type: text/html; charset=iso-8859-1\r\n";
// Enviando o email.
mail($from,$subject,$message,$header);
?>
É isso aí pessoal, que seja de bom proveito, e até a próxima dica.