PHP: Zachytávanie výstupu “echo” do premennej
Píšem vám jeden z mojich drobných “programátorských úspechov a pokrokov”… Pred časom som riešil jednu pekelnú funkciu vo Wordpress, ktorá namiesto toho, aby hodnotu vrátila cez return, hodnotu priamo vypisovala na obrazovku. To by bolo OK, keby som výstup zrovna nepotreboval ako parameter inej funkcie. ![]()
Nakoniec som dospel k celkom jednoduchému riešeniu. Teraz vám poviem, ako výstup (echo) uložiť do premennej. Skutočne som neprišiel na lepšie riešenie, takže ak ste už podobnú vec riešili, tam dole pod článkom môžete zanechať komentár
Nezabúdajte: Bez vašich komentárov žiadny článok nie je kompletný!
-
<?php
-
/* Chceme získať email autora (napr. kvôli výpisu avatara), ale nechceme ho vypisovať */
-
-
// naštartujeme output buffering
-
-
// necháme funkciu, nech si email vypíše (pravdepodobne cez echo)
-
comment_author_email();
-
-
// narveme výstup do premennej
-
-
// zavrieme buffer a vyprázdnime
-
-
// áááá, výpis!
-
echo "Email: $email";
-
?>
…to je všetko
Dúfam, že sa to niekomu bude hodiť. Enjoy it!
PS: Našiel som ešte článok, ako zachytiť výstup do súboru
. Tak ho sem dopĺňam.















Ahoj.
Na ukončenie a zároveň vrátenie obsahu do premennej je lepšie použiť funkciu ob_get_clean(), ktorá vráti obsah buffera a zároveň ho ukončí. Tým sa nemôže stať, že by som buffer zabudol zavrieť alebo ešte do neho niečo dopĺňal.
Díky, dobrý tip. Skutočne:
ob_get_clean — Get current buffer contents and delete current output buffer