Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smart i ob_start()
Forum PHP.pl > Forum > PHP
smut
Witam,

mam pewien problem. W projekcie nad którym pracuję skorzystano ze Smarty. Skrypt poprawnie ładuje tpl i wyświetla go odpowiednio przerobionego.
Pojawił się jednak problem, który dotyczy około 200plików tpl - i nie jest łatwy do zedytowania. Dlatego postanowiłem, że na początku zrobię
ob_start(), skrypt zadziała jak trzeba, po czym przechwycę bufor, zedytuję to co trzeba zedytować już w samym kodzie HTML i wyświetlę stronę wyświetlając po prostu zedytowany bufor. I tu pojawia się mój problem - gdyż skrypt jakby wykonuje się dwa razy, albo jakoś dziwnie po prostu. Tak jakby dwa razy edytował bufor.

Może wiecie o co może chodzić?

Pozdrawiam
likemandrake
nie wiem dokladnie o co chodzi biggrin.gif

ale zapoznaj sie z funkcjami do wlaczenia buforowania (ob_start()), ktora z reszta uzywasz, oraz funkcje, do przelapania zawartosci bufora i wyczyszczenia go(bez wysylania jego zawartosci), potem ta zawartosc ktora przelapiesz do zmiennej, zedytujesz i wyswietlisz za pomoca komendy echo

www.php.net tu masz ladny opis funkcji z przykladami
-=Peter=-
Po co używasz ob_start()? Przecież smarty mają wbudowaną metodę $smarty->fetch($tpl); -> zwraca ona kod html jako string, więc niepotrzebne Ci bufforowanie...
likemandrake
Oczywiscie poprzednik ma racje. Ogolnie taka czynnosc jaka chcesz wykonac wiaze sie z pewnym spadkiem wydajnosci i byc moze czytelnoscia kodu, mysle ze raczej powinno sie patrzec pod katem poprawienia kodu, aby ominac dany problem, czyli innymi słowy, zmniejszyc zlozonosc kodu. Nie jestem czarodziej czy co, ale mysle ze takie cos powinno sie dac ominac smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.