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!
😉