ob_start
(PHP 4, PHP 5, PHP 7, PHP 8)
ob_start — Ativa o buffer de saída
Descrição
$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 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-senull
.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: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
retornarfalse
, o conteúdo do buffer é retornado. Consulte Valores de Retorno do Menipulador de Saída para mais detalhes.WarningChamar 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 quechunk_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()
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