Kirjoittaja: trinit
Kirjoitettu: 23.03.2003 – 23.03.2003
Tagit: koodi näytille, vinkki
Output Buffering (OB) tapaa käyttämällä voi tulostaa tekstiä ennen esim. setcookie() ja header() funktioita ilman virheilmoituksia ("Headers already sent..."). OB:ia käytettäessä sivulle tulostettava teksti jää ensin puskurimuistiin josta se myöhemmin tulostetaan. Käytettäessä header() funktiota header("Location: osoite") tyyliin, tulostusta ei välttämättä ehdi näkemään, koska selain on jo siirtymässä annettuun osoitteeseen.
<?php
// Aloitetaan puskurin täyttö
ob_start();
echo "<html><head><title>Output Buffering</title></head><body>";
echo "Selaimeesi asetetaan eväste odota hetki...";
setcookie("testievaste", "testiä", time() + 60);
echo "<br>Eväste asetettu";
echo "</body></html>";
// Tyhjennetään puskuri, joka samalla näyttää echo:lla tulostetun rivin
ob_end_flush();
?>Toinen hyödyllinen käyttötarkoitus OB:lle on silloin, kun pitäisi saada talteen tulostettava teksti. Esimerkiksi PHP:n omat koodinvärjäysfunktiot tulostavat tekstin automaattisesti. Seuraavan tapaisella systeemillä tulosteen saa kuitenkin muuttujaan:
<?php //$teksti sisältää PHP-koodia ob_start(); highlight_string($teksti); $teksti=ob_get_contents(); ob_end_clean(); ?>
hyvää työtä
SUPER HYÖDYKÄS!
kiitti