Buffer de SaĆ­da

O buffer de saƭda Ʃ o buffer (armazenamento temporƔrio) da saƭda antes de ela ser descarregada (enviada e descartada) para o navegador (em um contexto da web) ou para o shell (na linha de comando). Enquanto o buffer de saƭda estiver ativo, nenhuma saƭda serƔ enviada do script; em vez disso, a saƭda serƔ armazenada em um buffer interno.

Buffer Afetando o PHP

O PHP depende da infraestrutura de software/hardware subjacente ao descarregar a saƭda. O buffer implementado por consoles na linha de comando (por exemplo, buffer de linha) ou servidores web e navegador em um contexto web (por exemplo, totalmente bufferizado) afeta quando a saƭda Ʃ exibida para o usuƔrio final. Alguns desses efeitos podem ser eliminados ajustando as configuraƧƵes do servidor e/ou alinhando os tamanhos dos buffers das diversas camadas.

Controle de Buffer de SaĆ­da no PHP

O PHP fornece um buffer de saƭda em nƭvel de usuƔrio totalmente armazenado em buffer com funƧƵes para iniciar, manipular e desligar o buffer (a maioria das funƧƵes ob_*) e duas funƧƵes para descarregar os buffers subjacentes do sistema (flush() e ob_implicit_flush()). Algumas dessas funcionalidades podem ser definidas e/ou configuradas usando tambƩm as configuraƧƵes apropriadas do php.ini.

Casos de Uso

O buffer de saída geralmente é útil em situações em que a saída armazenada em buffer é modificada ou inspecionada ou é usada mais de uma vez em uma solicitação; ou quando a descarga controlada da saída é desejada. Os casos de uso específicos incluem:

  • Armazenar em cache o resultado de scripts com uso intensivo de tempo/computação, por exemplo, gerando pĆ”ginas HTML estĆ”ticas.
  • Reutilizar a saĆ­da gerada exibindo-a, salvando-a em um arquivo e/ou enviando-a por e-mail.
  • Enviar a tag head de uma pĆ”gina HTML, antes da tag body permite que os navegadores carreguem recursos externos enquanto o script executa processos potencialmente mais demorados (por exemplo, acesso a banco de dados e arquivos, conexĆ£o de rede externa). Isto só Ć© Ćŗtil se o código de status HTTP nĆ£o puder ser alterado após o envio dos cabeƧalhos.
  • Extrair informaƧƵes de funƧƵes que de outra forma produziriam saĆ­da (por exemplo, phpinfo()).
  • Controlar a saĆ­da de código de terceiros modificando/usando partes (por exemplo, extraindo dados, substituindo palavras/frases, adicionando tags HTML ausentes) ou descartando-o inteiramente sob certas condiƧƵes (por exemplo, erros).
  • Preenchendo certas funcionalidades indisponĆ­veis do servidor web (por exemplo, compactação ou codificação de saĆ­da)
+adicionar nota

Notas de UsuƔrios

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