Manual do PHP
Anterior |  | Próxima

# ob_start

(PHP 4 , PHP 5)

ob_start -- Ativa o buffer de saída

## Descrição

bool ob_start ( [callback output_callback])

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` caso output_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 (ereg_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().

Anterior | Principal | Próxima
ob_list_handlers | Acima | output_add_rewrite_var