ob_gzhandler() странная ошибка

berkut

Новичок
ob_gzhandler() странная ошибка

вообщем код такой:
ob_start('ob_gzhandler');
ob_start();

в ie, opera, ff - работает нормально. а у юзеров в safari - вылетает ошибка на второй строке:
Fatal error: ob_start() [<a href='ref.outcontrol'>ref.outcontrol</a>]: Cannot use output buffering in output buffering display handlers

Т.е. походу сафари не поддерживает сжатие или какое-то специфичное. Чем лечить?
 

Long

Новичок
а что в $_SERVER["HTTP_ACCEPT_ENCODING"]?
upd. ты уверен что тебе нужен второй буфер вывода?
 

berkut

Новичок
gzip, deflate. чорт. всё сложнее. на тестовом примере не вылетает. в реале вылетает именно на ob_start(), перед ним идёт ob_start('ob_gzhandler'); и куча кода. а отлатидь не могу, нет сафари. и в гугле только 2 ссылки - и всё не то

-~{}~ 13.05.08 18:20:

нужен второй.
 

dimagolov

Новичок
berkut, может обойтись без вложенных буферов? скорее всего проблема в них, в их взаимодействии. просто лови весь вывод, закрывай буфер, потом включай ob_start('ob_gzhandler');, выводи в него страницу и заканчивай процесс.
 

berkut

Новичок
без вложенных совсем никак. но попробую сначала ловить всё в ob_start() а потом уже через ob_gzhandler($content, ..);
вывести всё
 

Long

Новичок
berkut, а почему не хочешь использовать возможности веб-сервера для сжатия? а то буквально на ровном месте можно нарваться на траблы
 

kruglov

Новичок
ob_start();
блаблабла
$result=ob_get_contents();
ob_end_clean();
ob_start('ob_gzhandler');
echo $result;
 

berkut

Новичок
она оказываеться вообще у меня не работает. gz скомпилен. смотрю заголовки:
Accept-Encoding gzip,deflate
в ответ:
Transfer-Encoding chunked

а почему не жмёт она?
 

kruglov

Новичок
Так, стоп. Указанная ошибка обычно имеет место, когда написано ob_start(); ob_start('ob_gzhandler') а не наоборот, мне кажется.
 

demon_goo

Новичок
тоже не понял, зачем два раза ob_start(), у меня все с одним работает, в Сафари тоже.

btw, Сафари уже портирован на Винду, можно скачать на http://www.apple.com/safari/
 

dimagolov

Новичок
demon_goo, ты не в теме. буферизацию можно и вложенную делать, если есть такая необходимость, только закрывать их надо в правильном порядке. Иначе, например, не реализовать тему с подсчетом и отображением коэф. сжатия страницы с выводом сжатого и не сжатого объема.
 
Сверху