NICRUO.COM

Gravar Output PHP

Boas.

Hoje vou falar de buffer do php, como armazenar esse buffer numa variável, e o porque desta técnica.

Muitas vezes escrevemos código em php onde precisamos de escrever html. O que fazemos neste caso? Existem duas formas:

HelloWorld";
?>

Bom, estas duas formas são suficientes para praticamente todos os casos. Mas e se nós precisarmos de armazenar o html com o php numa variável?

Bem aqui vai a solução evidente:

HelloWorld";

echo $html;

?>

Como vêm é simples como a água. Mas se usarem um editor de html WYSIWYG como o Dreamweaver (eu uso, e gosto por causa das ajudas automáticas enquanto teclo) não vão conseguir ver no design mode o html que está contido na variável. Para muitos este não é um problema pois usam estas funcionalidades com código simples. Mas e quando estamos a trabalhar com tabelas complexas, ou com html mais complexo e necessitamos de o poder ver e mexer nele à pata e mesmo assim ele gravar numa variável? Aqui está a solução buffer:




Bem o que é o ob? São funções do php de controle de buffer. ou seja o ob_start() inicial a leitura do que ele deveria fazer o output. depois o ob_get_contents() armazena numa variável (neste caso $html) o buffer. Depois para o buffer não ser automáticamente despejado no fim da execução na página usamos o ob_end_clear() para o limpar. Por fim fazemos o que quisermos com a variável (neste caso fizemos um echo da variável para ver o resultado).

Uso prático: Eu precisei das funcionalidades no meu sistema de templates. tava farto de ter de fazer copy paste de elementos html entre o design e depois para dentro de uma variável.

Nota: não se equeçam que podem usar <?=”Hello World”?> em vez de <?php echo”Hello World”; ?> para vos facilitar a vida.

Espero que tenham gostado da dica. Um abraço.

Inté 8)

Deixe o seu comentário