Configurações em Execução

O comportamento dessas funções podem ser modificado pelas configurações do php.ini.

Opções de configuração de controle de saída
Nome Padrão Modificavel Changelog
output_buffering "0" PHP_INI_PERDIR  
output_handler NULL PHP_INI_PERDIR Disponível desde o PHP 4.0.4.
implicit_flush "0" PHP_INI_ALL PHP_INI_PERDIR no PHP <= 4.2.3.
Para mais detalhes e definições dos modos PHP_INI_*, veja Onde uma configuração deve ser definida.

Uma rápida explicação das diretivas de configuração.

output_buffering boolean/integer

Você pode ativar o buffer de saída para todos os arquivos definindo esta dretiva para 'On'. Se você quiser limitar o tamanho do buffer para um certo limite - você pode usar um número máximo de bytes ao invés de 'On', como valor para esta diretiva (ex., output_buffering=4096). No PHP 4.3.5, esta diretiva é sempre Off em PHP-CLI.

output_handler string

Você pode redirecionar toda a saída do seu script para uma função. Por exemplo, se você definir set output_handler para mb_output_handler(), a codificação dos caracteres será transparentemente convertida para a codificação especificada. Definindo qualquer função para gerenciar a saída ativa o buffer de saída.

Nota:

Você não pode usar mb_output_handler() com ob_iconv_handler() e você não pode usar ob_gzhandler() e zlib.output_compression.

Nota:

Somente funções nativas podem ser usadas com esta diretiva. Para funções definidas pelo usuário, use ob_start().

implicit_flush boolean

false por padrão. Mudando isto para true diz ao PHP para dizer para a camada de saída descarregar a si mesma automaticamente a cada bloco de saída. Isto é equivalente a utilizar a função do PHP flush() a cada print ou echo e a cada bloco de HTML.

Quando estiver usando o PHP em um ambiente web, ativando esta opção tem uma séria implicação na performance e geralmente é recomendada apenas para debug. O valor padrão é true quando operando sobre CLI SAPI.

Veja também ob_implicit_flush().

url_rewriter.tags string
url_rewriter.tags especifica quais tags HTML serão reescritas por valores de output_add_rewrite_var(). Padrão para a=href,area=href,frame=src,input=src,form= form é uma tag especial. <input hidden="session_id" name="session_name"> é adicionada como uma variável de formulário.

Nota: Antes do PHP 7.1.0, url_rewriter.tags era utilizada para especificar session.trans_sid_tags. Desde o PHP 7.1.0 fieldset não é mais considerada uma tag especial.

url_rewriter.hosts string
url_rewriter.hosts especifica quais nomes de hosts são reescritos para incluir valores de output_add_rewrite_var(). Padrão para $_SERVER['HTTP_HOST']. Vários hosts podem ser especificados, separados por "," e sem espaços entre os nomes. Por exemplo php.net,wiki.php.net,bugs.php.net

add a note add a note

User Contributed Notes 1 note

up
5
support at losalgendesign dot com
10 years ago
Using "OFF" or no value on output_buffering will disable header modifications, like redirects or content-type or content-disposition resulting in the error we commonly attribute to output before header modifications:

Warning: Cannot modify header information - headers already sent by (output started at C:\PATH\filename.php:1) C:\PATH\filename.php on line 1

Example code with output_buffering = OFF which results in this behavior.  Changing it to "ON" or giving it a value will likely cause normal behavior.

<?php header("Location: http://www.php.net"); ?>

or

<?php header("Content-Type: text/Calendar"); ?>
<?php header
("Content-Disposition: inline; filename=appointment.ics"); ?>
To Top