ob_start

ob_start -- Zapnout bufferování výstupu

Popis

void ob_start ( [string output_callback])

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( )