SdevLab – Exemplo de Código | Output Buffer em PHP

Se alguma vez assim como eu você precisar controlar as saídas da sua página, com certeza vai ter que pesquisar as funções de output buffer. Esta função (ob) manipula a saída de dados e só os envia para o navegador quando você quiser, para isto, todas as saídas são armazenadas em um buffer e só são liberadas quando a função correta for chamada.

Output Buffer em PHP

So você tentar, por exemplo, colocar um cookie  no corpo de uma página pode se deparar com o erro Headers already sent, e isto quer dizer que você já enviou os dados para o navegador, para contornar esta situação, segue as funções do output buffer:

  • ob_start(): pega todos os dados de saída e guarda em um buffer (os dados só são enviados ao navegador quando você encerrar o buffer);
  • ob_end_flush(): envia o conteúdo do buffer para a saída, esvazia e encerra o buffer;
  • ob_flush(): envia o conteúdo da saída para o buffer e o esvazia. Os dados que posteriormente forem enviados a saída continuam sendo guardados no buffer;
  • ob_end_clean(): esvazia o buffer e o limpa sem enviar dados a saída;
  • ob_clean(): limpa o buffer;
  • ob_get_contents(): retorna o conteúdo do buffer;

Segue abaixo um código exemplo:

<?php
//iniciamos o processo de buffering
ob_start();
$teste = 'teste';
//aqui guardamos o conteúdo da variável teste em um cookie
setcookie("cookie_teste",$teste);
//encerramos o processo de bufferização porque o cookie já foi gravado.
ob_end_clean();
?>

Existem muitas utilidades para o output buffer, e uma delas é gravar um cookie no meio do corpo de uma página.

Até a próxima!
😉