Você já deve ter visto as funções ob_start(), ob_end_flush() entre outras “ob_”, apreenda neste post para que servem e como você pode estar utilizando as funções de controle de saída no seu projeto.
Primeiro, “ob_” vem de Output Buffer, ou buffer de saída.
Explicando de uma forma bem resumida essas funções irão te auxiliar a controlar e manipular os dados que são enviados para o navegador.
Tanto em um “echo”, como em um “include”, você será capaz de salvar esse conteúdo em uma variável antes de “reenviá-las” para o navegador.
Exemplo de utilização
Vamos para um exemplo bem simples, utilizando “echo”.
ob_start(); echo "Teste 1"; echo "Teste 2"; $conteudo = ob_get_contents(); ob_end_clean();
Com a função ob_start() eu inicio o “buffer” para salvar os dados que serão enviados.
Já com a função ob_get_contents() eu retorno para minha variável o conteúdo que foi capturado, já a função ob_end_clean() irá limpar o buffer e cancelar a saída de dados.
Você também pode utilizar a função ob_clean() que irá apenas limpar o buffer sem cancelar a saída dos dados
Segundo exemplo de utilização
Exemplo abaixo é bem útil para manipular Templates com o PHP.
<?php ob_start(); ?> <div> <span>texto de teste</span> <div>texto de teste</div> <a href="#">teste</a> </div> <?php $content = ob_get_clean(); var_dump( $content ); ?>
Você pode utilizar as funções de controle de saída com includes, requires, file_get_contents.
ob_start(); include("template.php"); $content = ob_get_clean(); var_dump( $content );
Repare que no código acima estou utilizando a função ob_get_clean() que além de retornar o conteúdo da saída irá limpar o buffer.
Exemplo com função para manipular templates.
function getTemplateContent($nome_template) { ob_start(); include $nome_template; $temp = ob_get_contents(); ob_end_clean(); return $temp ; }
Conclusão
As funções de controle de saída serão muito uteis para você desenvolver sistemas mais complexos e organizados.
Conheça todas as funções disponíveis para Controle de Saída neste link: Funções para Control de Saída


4 comentários sobre “Utilizando ob_start(), ob_end_flush(), ob_get_contents() no PHP”