Manuál PHP | ||
---|---|---|
Předcházející | Další |
CXIV. Funkce pro řízení výstupu
Úvod
Funkce pro řízení výstupu vám umožňují ovládat, kdy se odešle výstup skriptu. To může být užitečné v několika různých situacích, zvláště pokud potřebujete poslat browseru hlavičky poté, co váš skript začal odesílat data. Output Control funkce neovlivňují hlavičky odeslané pomocí funkcí header() nebo setcookie(), pouze funkce jako echo() a data mezi bloky PHP kódu.
Požadavky
Tyto funkce jsou k dispozici jako součást standardního modulu, který je vždy dostupný.
Instalace
K používání těchto funkcí není třeba žádná instalace, jsou součástí jádra PHP.
Konfigurace běhu
Chování těchto funkcí je ovlivněno nastavením parametrů v php.ini.
Tabulka 1. Konfigurační volby řízení výstupu
Název | Výchozí hodnota | Lze změnit |
---|---|---|
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 |
Zde je stručný popis konfiguračních direktiv.
output_buffering
boolean/integerŘízení výstupu můžete povolit pro všechny soubory nastavením této direktivy na 'On'. Pokud chcete omezit velikost bufferu na určitou hodnotu, můžete jako hodnotu této direktivy místo 'On' použít maximální počet bytů (např. output_buffering=4096).
output_handler
stringCelý výstup vašich skriptů můžete přesměrovat do funkce. Například pokud nastavíte output_handler na mb_output_handler(), kódování znaků bude transparentně překódováno do zadaného kódování. Nastavení jakékoliv funkce automaticky zapne řízení výstupu.
Poznámka: Nemůžete používat najednou mb_output_handler() s ob_inconv_handler() a nemůžete používat najednou ob_gzhandler() a zlib.output_compression.
implicit_flush
booleanVe výchozí nastavení je FALSE. Změna na TRUE oznámí PHP, aby oznámilo výstupní vrstvě, aby se automaticky vyprázdnila po každém vypsaném bloku. Je to ekvivalentní volání PHP funkce flush() po každém zavolání funkce print() nebo echo() a po každém HTML bloku.
Když se PHP používá v prostředí webu, zapnutí této volby má závažné výkonnostní důsledky a obecně se doporučuje ho používat pouze pro ladění. Tato hodnota má výchozí nastavení TRUE pokud pracujete pod CLI SAPI.
Viz také ob_implicit_flush().
Typy prostředků
Toto rozšíření nemá definován žádný typ prostředku (resource).
Předdefinované konstanty
Toto rozšíření nemá definovány žádné konstanty.
Příklady
Ve výše uvedené ukázce se výstup z echo() uloží ve výstupním bufferu až do volání ob_end_flush(). Mezitím volání setcookie() úspěšně uložilo cookie bez vyvolání chyby. (Normálně nemůžete odeslat do browseru hlavičky poté, co už byla odeslána data.)
Poznámka: Při přechodu z PHP 4.1 (a 4.2) na 4.3 musíte kvůli chybě ve starších verzích zaručit, aby v php.ini byla direktiva implict_flush nastavena na OFF, jinak výstup po zavolání funkce ob_start() nebude skryt z výstupu.
Viz také
Viz také header() a setcookie().
- Obsah
- flush -- Odeslat výstupní buffer
- ob_clean -- Clean (erase) the output buffer
- ob_end_clean -- Vyčistit (vymazat) výstupní buffer a vypnout bufferování výstupu
- ob_end_flush -- Vyprázdnit (odeslat) výstupní buffer a vypnout bufferování výstupu
- ob_flush -- Flush (send) the output buffer
- ob_get_clean -- Get current buffer contents and delete current output buffer
- ob_get_contents -- Vrátit obsah výstupního bufferu
- ob_get_flush -- Flush the output buffer, return it as a string and turn off output buffering
- ob_get_length -- Vrátit délku výstupního buffer
- ob_get_level -- Return the nesting level of the output buffering mechanism
- ob_get_status -- Get status of output buffers
- ob_gzhandler -- ob_start callback function to gzip output buffer
- ob_implicit_flush -- Vypnout/zapnout implicitní flush
- ob_list_handlers -- List all output handlers in use
- ob_start -- Zapnout bufferování výstupu
- output_add_rewrite_var -- Add URL rewriter values
- output_reset_rewrite_vars -- Reset URL rewriter values
Předcházející | Domů | Další |
PDO_OCI DSN | Nahoru |