GARANTIR DESCONTO

Fórum PHP buffer ob_flush() vs. flush() #571515

24/11/2016

0

PHP

Qual é a diferença entre ob_flush() e flush() ?
Marilia

Marilia

Responder

Posts

30/11/2016

Gregory Monteiro

ob_flush() referência diz:
Esta função irá enviar o conteúdo da memória intermédia de saída (se qualquer).

A flush()referência diz:
Descarrega os buffers de gravação de PHP e tudo o PHP backend está usando (CGI, um servidor web, etc).

ob_flush envia um buffer iniciado pelo aplicativo. Pode haver várias ob_starts() aninhadas em qualquer script PHP. ob_flush transmite o conteúdo atual para a camada superior.

O PHP pode por si só transmitir buffer de saída. Isso depende do backend. Mas normalmente FastCGI tem um buffer de soquete por conta própria. Por isso flush() precisa ser invocado, bem como para enviar o conteúdo atual para o servidor web.

E agora o servidor web em si pode implementar outro esquema de buffer (mod_deflate ou filtro de conteúdo), que você não tem nenhuma influência sobre. Mas isso é raro e precisa ser configurado especificamente.

De qualquer modo, utilizar ambos.
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar