ConFoo 2025

ob_get_flush

(PHP 4 >= 4.3.0, PHP 5, PHP 7, PHP 8)

ob_get_flush Descarrega (envia) o valor de retorno do manipulador de saída ativo, retorna o conteúdo do buffer de saída ativo e desliga-o

Descrição

ob_get_flush(): string|false

Esta função chama o manipulador de saída (com a opçãor PHP_OUTPUT_HANDLER_FINAL), descarrega (envia) seu valor de retorno, retorna o conteúdo do buffer de saída ativo e desliga o mesmo.

ob_get_flush() irá falhar sem um buffer de saída ativo iniciado com a opção PHP_OUTPUT_HANDLER_REMOVABLE.

ob_get_flush() irá descarregar (enviar) o valor de retorno do manipulador de saída mesmo se o buffer de saída ativo tiver sido iniciado sem a opção PHP_OUTPUT_HANDLER_FLUSHABLE.

Parâmetros

Esta função não possui parâmetros.

Valor Retornado

Retona o conteúdo do buffer de saída ativo em caso de sucesso ou false em caso de falha.

Erros/Exceções

Se a função falhar, ela gera um E_NOTICE.

Exemplos

Exemplo #1 Exemplo de ob_get_flush()

<?php
// Usando output_buffering=On
print_r(ob_list_handlers());

// Grava o buffer em um arquivo
$buffer = ob_get_flush();
file_put_contents('buffer.txt', $buffer);

print_r(ob_list_handlers());
?>

O exemplo acima produzirá:

Array
(
    [0] => default output handler
)
Array
(
)

Veja Também

  • ob_start() - Ativa o buffer de saída
  • ob_get_contents() - Retorna o conteúdo do buffer de saída
  • ob_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo
  • ob_end_flush() - Descarrega (envia) o valor de retorno do manipulador de saída ativo e desliga o buffer de saída ativo
  • ob_get_clean() - Obtém o conteúdo do buffer de saída ativo e desliga-o

adicione uma nota

Notas Enviadas por Usuários (em inglês) 3 notes

up
34
info at pcdoctor dot fr
16 years ago
Hi,
this is just to add a behavior that I haven't understud at first place.

ob_get_flush actually returns the content of the buffer as a text but also it sends the buffer back to the browser so that it's displayed on user screen.

Use ob_get_clean if you do not want the buffer to be send to the user
up
-3
taras dot dot dot di at gmail dot com
16 years ago
I don't know how exactly this works, but if you call this function, PHP would behave as if headers have been sent (even though the output has gone to a string).

This means that you can't call this function, and then call setcookie for example.

This was verified by trial and error
up
-5
zubin@byron
19 years ago
Correction to previous post: ob_get_clean() is better, ie:

<?php
// start generating html
$html = '<html><head>'; // etc
// start output buffering
ob_start();
// call function which outputs immediately
print_menu();
// append this to $html and empty buffer
$html .= ob_get_clean();
?>
To Top