Podręcznik PHP
Poprzedni |  | Następny

# LXXVIII. Output Control Functions

# Wprowadzenie

The Output Control functions allow you to control when output is sent from the script. This can be useful in several different situations, especially if you need to send headers to the browser after your script has began outputting data. The Output Control functions do not affect headers sent using header() or setcookie(), only functions such as echo() and data between blocks of PHP code.

# Wymagania

Do zbudowania tego rozszerzenia nie są wymagane żadne zewnętrzne biblioteki.

# Instalacja

By używać tych funkcji, nie trzeba niczego instalować. Są one częścią jądra PHP.

# Konfiguracja startowa

Na działanie tych funcji wpływają ustawienia zawarte w pliku `php.ini`.

Tabela 1. Output Control configuration options

Name | Default | Changeable
--- | --- | ---
output_buffering | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM
output_handler | NULL | PHP_INI_PERDIR|PHP_INI_SYSTEM
implicit_flush | "0" | PHP_INI_PERDIR|PHP_INI_SYSTEM

For further details and definition of the PHP_INI_* constants see ini_set().

Oto krótkie wyjaśnienie dyrektyw konfiguracji.

`output_buffering` boolean/integer

  You can enable output buffering for all files by setting this directive to 'On'. If you wish to limit the size of the buffer to a certain size - you can use a maximum number of bytes instead of 'On', as a value for this directive (e.g., output_buffering=4096).

`output_handler` string

  You can redirect all of the output of your scripts to a function. For example, if you set output_handler to mb_output_handler(), character encoding will be transparently converted to the specified encoding. Setting any output handler automatically turns on output buffering.

  > Notatka: You cannot use both mb_output_handler() with ob_inconv_handler() and you cannot use both ob_gzhandler() and zlib.output_compression.

`implicit_flush` boolean

  `FALSE` by default. Changing this to `TRUE` tells PHP to tell the output layer to flush itself automatically after every output block. This is equivalent to calling the `PHP` function flush() after each and every call to print() or echo() and each and every `HTML` block.

  When using `PHP` within an web environment, turning this option on has serious performance implications and is generally recommended for debugging purposes only. This value defaults to `TRUE` when operating under the `CLI SAPI`.

  See also ob_implicit_flush().

# Typy zasobów

To rozszerzenie nie posiada żadnych rodzajów zasobów.

# Predefiniowane stałe

To rozszerzenie nie posiada żadnych stałych.

# Przykłady

Przykład 1. Output Control example

`<?php ob_start(); echo "Hello\n"; setcookie("cookiename", "cookiedata"); ob_end_flush(); ?>`

In the above example, the output from echo() would be stored in the output buffer until ob_end_flush() was called. In the mean time, the call to setcookie() successfully stored a cookie without causing an error. (You can not normally send headers to the browser after data has already been sent.)

> Notatka: When upgrading from PHP 4.1 (and 4.2) to 4.3 that due to a bug in earlier versions you must ensure that `implict_flush` is `OFF` in your `php.ini`, otherwise any output with ob_start() will not be hidden from output.

# Zobacz również

See also header() and setcookie().

Poprzedni | Spis treści | Następny
ovrimos_rollback | Początek rozdziału | flush