Descarregando Buffers de Sistema

O PHP fornece duas maneiras relacionadas para descarregar os buffers de sistema (enviar e descartar o conteúdo): chamando-se a função flush() e habilitando o descarregamento implicitamente com a função ob_implicit_flush() ou com a configuração implicit_flush do php.ini.

Comportamento do Descarregameto da SaĆ­da

Com o descarregamento implĆ­cito desabilitado, o PHP irĆ” descarregar a saĆ­da somente quendo flush() for chamada ou quando o script terminar.

Com o descarregamento implícito habilitado, o PHP tentarÔ descarregar após cada bloco de código que resulte em uma saída. A saída neste contexto é um dado de comprimento maior que zero que:

Nota: Exibir strings vazias ou enviar cabeçalhos não é considerado saída e não resultarÔ em operação de descarregamento.

Aviso

Se o descarregamento implícito estiver habilitado, caracteres de controle (ex.: "\n", "\r", "\0") também irão ativar o descarregamento.

LimitaƧƵes

Esta funcionalidade não pode descarregar buffers de saída no nível do usuÔrio. Para usÔ-los juntos, buffers de saída no nível do usuÔrio devem ser descarregados antes do descarregamento ds buffers de sistema para que o PHP produza qualquer saída.

Aviso

Chamar flush() ou habilitar o descarregamento implƭcito pode interferir com os manipuladores de saƭda de buffers no nƭvel do usuƔrio que definem e enviam cabeƧalhos em um contexto web (ex.: ob_gzhandler()) enviando cabeƧalhos antes que estes manipuladores o faƧam.

Buffer implementado pelo software/hardware subjacente não podem ser substituídos pelo PHP e devem ser levados em consideração ao se trabalhar com as funções de controle de buffer do PHP. Verificar as configurações de buffer dos servidores web, navegadores e consoles e trabalhar com elas pode aliviar possíveis problemas. Trabalhar em um contexto web, tanto as configurações de buffer do servidor quanto de buffer do script podem ser ajustadas para operar sequencialmente enquanto que contornar as estratégias de buffer de vÔrios navegadores pode ser conseguido ajustando o buffer no script PHP. Em consoles que implementam buffer de linha, caracteres de nova linha podem ser inseridos nos locais apropriados antes de liberar a saída.

DiferenƧas SAPI No Descarregamento

Embora o descarregamento seja implementado por cada SAPI de uma maneira ligeiramente diferente, essas implementaƧƵes se enquadram em uma de duas categorias:

  • SAPIs usadas em um contexto web irĆ£o descarregar cabeƧalhos primeiro, e depois a saĆ­da. Apache2Handler, CGI, FastCGI e FPM sĆ£o tais SAPIs.
  • Outras SAPIs tais como CLI e embed irĆ£o descarregar somente a saĆ­da.
+adicionar nota

Notas de UsuƔrios

Não hÔ notas de usuÔrios para esta pÔgina.