Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Компрессия выводимого HTML кода в Smarty
 
 автор: pavluxa09   (08.07.2012 в 18:51)   письмо автору
 
 

Здравствуйте, уважаемые пользователи форума! Хочу сделать компрессию выводимого кода HTML в smarty. Написал такую функцию:

function smartyoutputcompress( $tpl_output, &$smarty ) {
    if( headers_sent() ) 
        return $tpl_output;
    if( ($t = ob_get_contents()) != '' ) {
        $tpl_output = $t.$tpl_output;
        ob_clean();
    }
    header( 'Content-Encoding: deflate' );
    return gzcompress( $tpl_output, 4 );
}
Smarty()->registerFilter( 'output', 'smartyoutputcompress' );


Но к сожалению в IE сайт открываться не хочет. Помогите сделать что бы работало во всех браузерах. Просто моя страничка (исходный код) весит аж 270 килобайт.

  Ответить  
 
 автор: serenya1983   (09.07.2012 в 11:44)   письмо автору
 
   для: pavluxa09   (08.07.2012 в 18:51)
 


public function compression ($output) {
        if (isset ($_SERVER['HTTP_ACCEPT_ENCODING'])) {
            $HTTP_ACCEPT_ENCODING = $_SERVER['HTTP_ACCEPT_ENCODING'];
        }
        if (isset ($HTTP_ACCEPT_ENCODING)) {
            if (strpos ($HTTP_ACCEPT_ENCODING, 'gzip') !== False) {
                header ('Content-Encoding: gzip');
                $compressed_data    = gzencode ($output, GZIP_LEVEL);
                $compression_method = 'gzip';
            } elseif (strpos ($HTTP_ACCEPT_ENCODING, 'deflate') !== False) {
                header ('Content-Encoding: deflate');
                $compressed_data    = gzdeflate ($output, GZIP_LEVEL);
                $compression_method = 'deflate';
            } elseif (empty ($HTTP_ACCEPT_ENCODING)) {
                $compressed_data    = $output;
                $compression_method = 'no_compression';
            } elseif (!empty ($HTTP_ACCEPT_ENCODING)) {
                header ('HTTP/1.1 406 Not Acceptable core.compression');
                $compressed_data    = $output;
                $compression_method = 'not_allowed';
            }
        } else {
            $compressed_data    = $output;
            $compression_method = 'not_allowed';
        }

        $GLOBALS['compressed_size']    = strlen ($compressed_data);
        $GLOBALS['uncompressed_size']  = strlen ($output);
        $GLOBALS['compression_method'] = $compression_method;

        header ('Content-Length: ' . $GLOBALS['compressed_size']);
        return $compressed_data;

    }

  Ответить  
 
 автор: pavluxa09   (09.07.2012 в 12:59)   письмо автору
 
   для: serenya1983   (09.07.2012 в 11:44)
 

Веб-страница по адресу http:// возможно, временно недоступна или постоянно перемещена по новому адресу.
Ошибка 330 (net::ERR_CONTENT_DECODING_FAILED): Неизвестная ошибка.

  Ответить  
 
 автор: pavluxa09   (10.07.2012 в 12:03)   письмо автору
 
   для: pavluxa09   (09.07.2012 в 12:59)
 

UP

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования