PHP - Buffer/Buffering - Controle de Saída ob_start(), ob_get_contents() e ob_end_clean()


Controle de saída em PHP é muito interessante, principalmente quando trabalhamos com Curl ou quando queremos que uma página seja exibida apenas quando todo seu conteúdo foi processado.

Esta dica é bem rápida. Pretendo no futuro postar algo mais completo.

Utilizaremos as funções de Buffer do PHP.

Vamos aos exemplos então:

<?php
echo 'Saida';

A instrução acima retornaria

'Saida'

Mas vamos supor que não queremos esta saída e, sim, guardar a informação dentro de uma variável. Para isto usamos um buffer.

<?php
ob_start();
echo 'Saida';
$output = ob_get_contents();
ob_end_clean();

Este script não retorna valor pois apontamos a saída para a variável $output. Aqui ob_start() inicia o buffer, gravando tudo que é enviado para a saída padrão. ob_get_contents() joga tudo que foi gravado no buffer até aquele ponto dentro de uma variável e ob_end_clean() encerra a gravação e limpa o buffer.

Assim podemos aproveitar a variável $output para efetuar outros tipos de tratamento ou mesmo enviar este conteúdo para um arquivo.

<?php
ob_start();
echo 'Saida';
$output = ob_get_contents();
ob_end_clean();

$fp = fopen('arquivo.txt', 'w');
fwrite($fp, $output);
fclose($fp);

Por hoje é isto.

Comentários

Postagens mais visitadas deste blog

PHP - Utilizando proxy e CURL para acessar servidores ou sites

MySQL - Cálculo de período de tempo entre duas datas com TIMESTAMPDIFF

MySQL - Completando quantidades fixas de caracteres com as funções LPAD() e RPAD()