mirror of
https://github.com/php/doc-pt_br.git
synced 2026-03-23 22:52:12 +01:00
114 lines
4.2 KiB
XML
114 lines
4.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?><!-- EN-Revision: 7ad99aeafea66a1562f668aa3cb11dcc9d9cb951 Maintainer: leonardolara Status: ready -->
|
|
<chapter xml:id="outcontrol.output-buffering" xmlns="http://docbook.org/ns/docbook">
|
|
<title>Buffer de Saída</title>
|
|
<para>
|
|
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.
|
|
</para>
|
|
|
|
<section>
|
|
<title>Buffer Afetando o PHP</title>
|
|
<para>
|
|
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.
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Controle de Buffer de Saída no PHP</title>
|
|
<para>
|
|
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 <link linkend="ref.outcontrol">ob_<replaceable>*</replaceable></link>)
|
|
e duas funções para descarregar os buffers subjacentes do sistema
|
|
(<function>flush</function> e <function>ob_implicit_flush</function>).
|
|
Algumas dessas funcionalidades podem ser definidas e/ou configuradas
|
|
usando também as configurações apropriadas do &php.ini;.
|
|
</para>
|
|
</section>
|
|
|
|
<section>
|
|
<title>Casos de Uso</title>
|
|
<para>
|
|
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:
|
|
<itemizedlist>
|
|
<listitem>
|
|
<simpara>
|
|
Armazenar em cache o resultado de scripts com uso intensivo de tempo/computação,
|
|
por exemplo, gerando páginas <literal>HTML</literal> estáticas.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Reutilizar a saída gerada exibindo-a, salvando-a em um arquivo
|
|
e/ou enviando-a por e-mail.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Enviar a tag <literal>head</literal> de uma página <literal>HTML</literal>,
|
|
antes da tag <literal>body</literal> 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 <literal>HTTP</literal>
|
|
não puder ser alterado após o envio dos cabeçalhos.
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Extrair informações de funções que de outra forma produziriam saída
|
|
(por exemplo, <function>phpinfo</function>).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Controlar a saída de código de terceiros modificando/usando partes
|
|
(por exemplo, extraindo dados, substituindo palavras/frases,
|
|
adicionando tags <literal>HTML</literal> ausentes)
|
|
ou descartando-o inteiramente sob certas condições (por exemplo, erros).
|
|
</simpara>
|
|
</listitem>
|
|
<listitem>
|
|
<simpara>
|
|
Preenchendo certas funcionalidades indisponíveis do servidor web
|
|
(por exemplo, compactação ou codificação de saída)
|
|
</simpara>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
</section>
|
|
|
|
</chapter>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|