Buforowanie wyjscia php

Z Podręcznik Administratora by OPZ SGU
Wersja z dnia 05:19, 10 lip 2009 autorstwa Neo (dyskusja | edycje) (Utworzył nową stronę „Jedną z nieocenionych zalet PHP jest możliwość buforowania wyjścia. Buforowanie wyjścia znajdzie zastosowanie wszędzie tam gdzie chcemy pobrać do zmiennej tre…”)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

Jedną z nieocenionych zalet PHP jest możliwość buforowania wyjścia.

Buforowanie wyjścia znajdzie zastosowanie wszędzie tam gdzie chcemy pobrać do zmiennej treść która normalnie została by wyświetlona na ekranie.


Najprostszym i klasycznym przykładem jest przechwycenie tekstu.


<?php

ob_start();
echo "Jakiś tekst";
echo "<br>";
echo "Jakiś tekst 2";


$pobrane = ob_get_clean();
?>

w zmiennej $pobrane mamy zapisany wynik działania trzech komend echo. Możemy wykonać go jedną komendą

print($pobrane);


Buforowanie doskonale nadaje się do przechwytywania błędów które mają następnie by wysłane do administratora serwisu, dzięki temu, zobaczymy witrynę oczami użytkownika.

Możliwe jest też wykorzystanie buforowania do uzupełnienia brakujących elementów. W momencie ich uzyskania.

Przykładowo zaczynamy generować stronę www, a pole META keywords zastępujemy frazą tu_będą_słowa_kluczowe. Kiedy strona będzie cała gotowa, a my będziemy mieli listę tagów, przed wysłaniem jej do użytkownika poprzez repleace zamieniamy powyższą frazę na słowa kluczowe, po czym wysyłamy stronę do przeglądarki.


Buforowanie wyjścia nadaje się nie tylko do przechwytywania tekstu, ale i obrazów,plików.

ob_start();
ImagePNG($zdjecie);
$fotka = ob_get_clean();

Taka zmienna $fotka zawiera nasz obraz w trybie tekstowym, i z kolei może zostać zapisana z łatwością do MySQL.

Aby wydrukować ją do użytkownika, wystarczy komenda określająca nagłówek, oraz proste wypisanie zawartości.

Header("Content-type: image/PNG");
exit($fotka);