Forum und email
ob_start

ob_start

(PHP 4, PHP 5)

ob_start -- Zapnout bufferování výstupu

Popis

bool ob_start ( [callback output_callback [, int chunk_size [, bool erase]]] )

Tato funkce zapíná bufferování výstupu. Pokud je bufferování výstupu aktivováno, žádný výstup ze skriptu se neodešle, místo toho se ukládá v interním bufferu.

Obsah tohoto interního bufferu je možno zkopírovat do proměnné typu string pomocí ob_get_contents(). K odeslání obsahu interního bufferu použijte ob_end_flush(). Naprotitomu ob_end_clean() tiše odstraní obsah výstupního bufferu.

Můžete zadat volitelný název callback funkce, která se automaticky zavolá s obsahem bufferu jako argumentem. Tato funkce musí přijímat řetězec a vracet řetězec. Tato funkce bude volána při ob_end_flush() a dostane obsah výstupního bufferu jako svůj argument. Musí vrátit nový výstupní buffer, který se pak vytiskne.

Výstupní buffery se dají stackovat, tzn. můžete zavolat ob_start() zatímco je aktivní další ob_start(). Je potřeba pouze správný počet volání ob_end_flush()(). Pokud je akivních více output callback funkcí, výstup je filtrován postupně přes každou z nich tak jak jsou do sebe vnořené.

Příklad 1. Ukázka callback funkce

<?php
function c($str) {
  
// Druu Chunusun mut dum Kuntrubuß...
  
return nl2br(ereg_replace("[aeiou]", "u", $str));
}

function
d($str) {
  return
strip_tags($str);
}
?>

<?php ob_start("c"); ?>
Drei Chinesen mit dem Kontrabaß...
<?php ob_start("d"); ?>
<h1>..saßen auf der Straße und erzählten sich was...</h1>
<?php ob_end_flush(); ?>
... da kam die Polizei, ja was ist denn das?
<?php ob_end_flush(); ?>

?>

Viz také ob_get_contents(), ob_end_flush(), ob_end_clean(), and ob_implicit_flush()