Configurações em Execução
O comportamento dessas funções é afetado 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 os
Onde uma configuração deve ser definida.
Aqui está uma breve 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
support at losalgendesign dot com ¶9 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"); ?>