Kirjautuminen

Haku

Tehtävät

Koodit: PHP: Tulosteen puskurointi (OB)

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

Kommentit

Antti Laaksonen [23.03.2003 15:57:14]

#

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

juhotan [26.03.2003 15:31:23]

#

hyvää työtä

GeoHound [30.03.2003 10:10:18]

#

SUPER HYÖDYKÄS!
kiitti

Kirjoita kommentti

Muista lukea kirjoitusohjeet.
Tietoa sivustosta