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