Występują problemy z buforowaniem danych wyjściowych. Głównie, próbuję uruchomić buforowanie wyjściowe z wywołaniem ob_gzhandler, ale ciągle mówi mi, że używa on nieobsługiwanego typu kompresji. Wszystko włączone, i wierzę, że problemem jest to, że działa ob_get_level() na początku mojego skryptu wytwarza poziom 1. php.ini jest moja output_buffering ustawiony na 4096.ob_get_level() rozpoczyna się od poziomu 1
Jeśli uruchomię coś takiego:
while(ob_get_level() > 0){
ob_end_clean();
}
Następnie mogę z powodzeniem uruchomić ob_start() z wywołaniem ob_gzhandler. Ale zastanawiam się, czy to powinien być problem. Podczas mojego skryptu dzwonię do ob_clean() w różnych punktach, ponieważ unikam nakładania zbyt wielu buforów, ponieważ przeczytałem, że może to zwiększyć wydajność. Nie jestem pewien, co powinienem tu robić.
Pozdrawiam.
Tak, uważam, że tak. Jest ustawiony jako: output_buffering = 4096 (co powiedziałem powyżej). Co mam do czynienia, czy powinienem zostawić to tak, jak jest, i po prostu uruchomić pętlę mam powyżej, tak, że mogę rozpocząć buforowanie wyjściowe ob_gzhandler? –
@Jason Lewis: To zależy od ciebie. Prawdopodobnie zostawiłbym domyślny OB dla wszystkich skryptów i zakończyłbym go pętlą 'while' w przypadkach, w których chciałem użyć własnego. – Piskvor
Miałem powiedzieć, że używam ob_get_clean() w kilku miejscach, do przechowywania danych wyjściowych w kilku zmiennych i ostatecznie jest przepłukiwany. Czy jest to dobry sposób na to, czy powinienem uruchomić nowy bufor dla każdego miejsca, w którym chcę przechwycić wynik i użyć ob_get_flush() zamiast? –