ob_start

(PHP 4, PHP 5, PHP 7, PHP 8)

ob_startAtiva o buffer de saída

Descrição

ob_start(?callable $callback = null, int $chunk_size = 0, int $flags = PHP_OUTPUT_HANDLER_STDFLAGS): bool

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 disto a saída é guardada em um buffer interno. Consulte Que Saída é Armazenada em Buffer? 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 Aninhando Buffers de Saída para mais detalhes.

Consulte Buffers de Saída em Nível de Usuário para uma descrição detalhada de buffers de saída.

Parâmetros

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 é descarregado (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:

handler(string $buffer, int $phase = ?): string
buffer
O conteúdo original do buffer.
phase
Máscara de bits das constantes PHP_OUTPUT_HANDLER_* . Consulte Opções Passadas aos Manipuladores de Saída para mais detalhes.

Se callback retornar false, o conteúdo do buffer é retornado. Consulte Valores de Retorno do Menipulador de Saída para mais detalhes.

Warning

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 Manipuladores de Saída e Trabalhando com Manipuladores de Saída 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 Tamanho do Buffer para mais detalhes.

flags

O parâmetro flags é uma máscara de bits 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 Operações permitidas em 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_flush()
PHP_OUTPUT_HANDLER_REMOVABLE ob_end_clean(), ob_end_flush(), ob_get_clean() e ob_get_flush()

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Example #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>

Example #2 Criando um buffer de saída não apagável

<?php

ob_start(null, 0, PHP_OUTPUT_HANDLER_STDFLAGS ^ PHP_OUTPUT_HANDLER_REMOVABLE);

?>

Veja Também

  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_end_clean() - Limpa (apaga) o conteúdo do buffer de saída ativo e desliga-o
  • ob_end_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo e desliga o buffer de saída ativo
  • ob_implicit_flush() - Liga ou desliga o descarregamento implícito
  • ob_gzhandler() - Função de chamada de retorno de ob_start para comprimir o buffer de saída com gzip
  • ob_iconv_handler() - Converte codificação de caracteres como manipulador de buffer de saída
  • mb_output_handler() - Callback converte a codificação de caracteres no buffer de saída
  • ob_tidyhandler() - ob_start callback function to repair the buffer