(PHP 4, PHP 5)
ob_start — Ativa o buffer de saída
Esta função irá ativar o buffer de saída. Enquanto o buffer de saída estiver ativo, não é enviada a saída do script (outros que não sejam cabeçalhos), ao invés a saída é guardada em um buffer interno.
O conteúdo deste buffer interno pode ser copiado em uma variável usando ob_get_contents(). Para enviar o que esta no buffer interno, use ob_end_flush(). Alternativamente, ob_end_clean() irá silenciosamente descartar o conteúdo do buffer.
Uma função de callback opcional output_callback
também
pode ser especificada. Esta função leva uma string coo parâmetro e deve retornar
uma string. Esta função será chamada quando ob_end_flush()
for chamada, ou quando o buffer de saída for descarregado ao final do
script. Quando output_callback
for chamada,
ela irá receber o conteúdo do buffer como seu parâmetro e é esperado
que ela retorne um novo buffer de saída como resultado, o qual será enviado
para o browser. Se output_callback
não é uma função
que possa ser utilizada, esta função irá retornar FALSE
.
Nota:
No PHP 4.0.4, ob_gzhandler() para facilitar o envio de dados gz-encoded para browsers que suportem paginas web comprimidas. ob_gzhandler() determina o tipo de codificação de conteúdo que o browser aceitará e enviará a sua saída de acordo.
Nota:
Antes do PHP 4.3.2 esta função não retornava
FALSE
casooutput_callback
não pudesse ser executada.
Buffers de saída são empilháveis, isro é, você pode utilizar ob_start() enquanto outro ob_start() estiver ativo. Apenas tenha certeza que você utiliza ob_end_flush() o número apropriado de vezes. Se multiplas funções de callback de saída estiverem ativas, a saída será filtrada sequencialmente atráves de cada uma delas na ordem de aninhamento.
ob_end_clean(), ob_end_flush(), ob_clean(), ob_flush() e ob_start() não devem ser utilizados dentro de uma função de callback. Se você utiliza-los dentro de uma função de callback, o funcionamento é indefinido. Se você quiser excluir o conteúdo de um buffer, retorne "" (uma string vazia) da função de callback.
Exemplo #1 Exemplo com uma função de callback definida pelo usuário
<?php
function callback($buffer)
{
// replace all the apples with oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.
</body>
</html>
<?php
ob_end_flush();
?>
Irá produzir:
<html> <body> <p>It's like comparing oranges to oranges. </body> </html>
Veja também ob_get_contents(), ob_end_flush(), ob_end_clean(), ob_implicit_flush() e ob_gzhandler().