Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: FreeBSD
Por dark
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

ob_start() - capturar páginas na web ou geradas na hora usando PHP e enviá-las por email
Linux user
Publicado por albert guedes em 18/02/2010

Login: albertguedes, 611554 pontos | Blog: http://www.socrates.if.usp.br/~arcguede
[ Hits: 4445 ]

ob_start() - capturar páginas na web ou geradas na hora usando PHP e enviá-las por email

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.


Outras dicas deste autor

Leitura recomendada
   Dica Linux recomendada JS Calls PHP - biblioteca que possibilita interacão entre Javascript e PHP
   Dica Linux recomendada Wordpress - PHP Fatal error: Call to undefined function: add_custom_background()
   Dica Linux recomendada Hospedagem web grátis
   Dica Linux recomendada Aprendendo a configurar o uebmiau
   Dica Linux recomendada A função header() da PHP

Comentários
[1] Comentário enviado por ivani em 14/07/2010 - 14:08h:

Parabens pela dica!
Muito bem explicada, achei em uma boa hora! :)


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.