array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.ob-start.php', 1 => 'ob_start', ), 'up' => array ( 0 => 'ref.outcontrol.php', 1 => 'Funções para Control de Saída', ), 'prev' => array ( 0 => 'function.ob-list-handlers.php', 1 => 'ob_list_handlers', ), 'next' => array ( 0 => 'function.output-add-rewrite-var.php', 1 => 'output_add_rewrite_var', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/outcontrol/functions/ob-start.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Ativa o buffer de saída
$callback
= null
, int $chunk_size
= 0, int $flags
= PHP_OUTPUT_HANDLER_STDFLAGS
): boolEsta 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 disto a saída é guardada em um buffer interno. Consulte What Output Is Buffered? sobre exatamente que saída é afetada.
Buffers de saída são empilháveis, ou seja, ob_start() pode ser chamada enquanto outro buffer estiver ativo. Se múltiplos buffers de saída estiverem ativos, a saída será filtrada sequencialmente atráves de cada uma delas na ordem de aninhamento. Consulte Nesting Output Buffers para mais detalhes.
Consulte User-Level Output Buffers para uma descrição detalhada de buffers de saída.
callback
Uma função callback
do tipo callable pode ser
especificada. Ela também pode ser ignorada passando-se null
.
callback
é chamada quando o buffer de saída é
descarregad (enviado), limpo, ou quando o buffer de saída é descarregado
no final da execução do script.
A assinatura da função callback
deve ser da seguinte forma:
buffer
phase
PHP_OUTPUT_HANDLER_*
.
Consulte Flags Passed To Output Handlers
para mais detalhes.
Se callback
retornar false
,
o conteúdo do buffer é retornado.
Consulte Output Handler Return Values
para mais detalhes.
Chamar qualquer das funções a seguir de dentro de um manipulador de saída resultará em erro fatal: ob_clean(), ob_end_clean(), ob_end_flush(), ob_flush(), ob_get_clean(), ob_get_flush() e ob_start().
Consulte Output Handlers
e Working With Output Handlers
para mais detalhes sobre as funções callback
(manipuladores de saída).
chunk_size
Se o parâmetro opcional chunk_size
for informado,
o buffer será descarregado depois que algum bloco de código que produza saída
faça com que o tamanho do buffer fique igual ou
maior que chunk_size
.
O valor padrão é 0
, que significa
que toda a saída fica em buffer até que ele seja desligado.
Consulte Buffer Size para mais detalhes.
flags
O parâmetro flags
é um bitmask que controla
as operações que podem ser realizadas no buffer de saída. O padrão
é permitir que o buffer de saída possa ser limpo, descarregado ou removido, o que
pode ser configurado explicitamente através das
opções de controle de buffer
.
Consulte Operations Allowed On Buffers
para mais detalhes.
Cada opção controla o acesso das funções, como descrito a seguir:
Constante | Funções |
---|---|
PHP_OUTPUT_HANDLER_CLEANABLE |
ob_clean() |
PHP_OUTPUT_HANDLER_FLUSHABLE |
ob_end_flush() |
PHP_OUTPUT_HANDLER_REMOVABLE |
ob_end_clean(), ob_end_flush(), ob_get_clean() e ob_get_flush() |
Exemplo #1 Exemplo de uma função de callback
<?php
function callback($buffer)
{
// substitui apples por oranges
return (str_replace("apples", "oranges", $buffer));
}
ob_start("callback");
?>
<html>
<body>
<p>It's like comparing apples to oranges.</p>
</body>
</html>
<?php
ob_end_flush();
?>
O exemplo acima produzirá:
<html> <body> <p>It's like comparing oranges to oranges.</p> </body> </html>
Exemplo #2 Criando um buffer de saída não apagável
<?php
ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);
?>