PHP buffer ob_flush() vs. flush()

PHP

24/11/2016

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

Marilia

Curtidas 0

Respostas

Gregory Monteiro

Gregory Monteiro

24/11/2016

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.
GOSTEI 0
POSTAR