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é