ФорумПрограммированиеPHP для идиотов → wp + ob_gzhandler

wp + ob_gzhandler

  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 15:59

    я хуею, дорогая редакция
    захотел на вп 2.7.1 поставить гзипирование и подключил плагин GZIP Output


    function filosofo_gzip_compression() {

    // don't use on TinyMCE
    if (stripos($_SERVER['REQUEST_URI'], 'wp-includes/js/tinymce') !== false) {
    return false;
    }

    // can't use zlib.output_compression and ob_gzhandler at the same time
    if ( ( ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0 ) || ini_get( 'output_handler' ) == 'ob_gzhandler' ) {
    return false;
    }

    if (extension_loaded( 'zlib' ) ) {
    ob_start( 'ob_gzhandler' );
    }
    }
    add_action('init', 'filosofo_gzip_compression');


    то есть если не tinymce и гзип еще не включен то запускаем буферизацию через ob_gzhandler
    мистика бля, на админке работает а на сайте - нет(((
    такое впечатление что сразу же вызываеться ob_end_clear/flush

    никто не в курсе как побороть?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 16:01, спустя 1 минуту 57 секунд

    да кстати если сделать так



    function my_ob_gzhandler($buffer){
    $bufziped = gzcompress($buffer, 5);
    $bufziped = pack('cccccccc',0x1f,0x8b,0x08,0x00,0x00,0x00,0x00,0x00)
    .substr($bufziped, 0, -4)
    .pack('V',crc32($buffer))
    .pack('V',strlen($buffer));
    return $bufziped;
    }

    function filosofo_gzip_compression() {

    // don't use on TinyMCE
    if (stripos($_SERVER['REQUEST_URI'], 'wp-includes/js/tinymce') !== false) {
    return false;
    }

    // can't use zlib.output_compression and ob_gzhandler at the same time
    if ( ( ini_get( 'zlib.output_compression' ) == 'On' || ini_get( 'zlib.output_compression_level' ) > 0 ) || ini_get( 'output_handler' ) == 'ob_gzhandler' ) {
    return false;
    }

    header('Content-Encoding: gzip');
    ob_start( 'my_ob_gzhandler' );

    }
    add_action('init', 'filosofo_gzip_compression');



    то все везде работает так что это не ob_end_clear/flush
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 16:43, спустя 42 минуты 9 секунд

    CTAPbIu_MABP, знаешь чо в таких случаях можно попробовать.

    ob_start("ob_gzhandler");
    ob_start();
    ob_start();
    ob_start();
    ob_start();
    нечто такое. тогда будет большой стек буферов и врядли ктото это все перекроет
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 17:02, спустя 19 минут 43 секунды

    попробую но там есть мега функция

    function wp_ob_end_flush_all() {
    while ( @ob_end_flush() );
    }
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 17:04, спустя 1 минуту 48 секунд


    попробую но там есть мега функция

    function wp_ob_end_flush_all() {
    while ( @ob_end_flush() );
    }

    оО ебать)))))))))
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 20:38, спустя 3 часа 34 минуты 13 секунд

    а ларчик просто открывался

    после мод реврайта не отрабатывает ob_start("ob_gzhandler");

    пруфлинк
    http://xpoint.ru/forums/programming/PHP/thread/35558.xhtml
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 20:40, спустя 1 минуту 50 секунд

    мне блин теперь либо gzcompress использовать либо убирать слеш со всех страниц в конце
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 20:41, спустя 18 секунд

    склоняюсь к gzcompress изза сео
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 21:00, спустя 19 минут 19 секунд


    а ларчик просто открывался

    после мод реврайта не отрабатывает ob_start("ob_gzhandler");

    пруфлинк
    http://xpoint.ru/forums/programming/PHP/thread/35558.xhtml
    а дочитать?

    Извиняюсь, всех запутал. Ошибка всегда вылазит.

    А проблема решилась путем перестановки строк. Раньше первой строчкой шел session_start();

    2 if (extension_loaded('zlib')) {
    3 ob_start('ob_gzhandler');
    4 }
    5
    6 session_start();
    Сапожник без сапог
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 21 марта 2009 г. 23:45, спустя 2 часа 45 минут 19 секунд

    не могу найти в вп session_start :((( поиском по файлам не могу(((
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 марта 2009 г. 0:14, спустя 29 минут 15 секунд

    потому что ее там нет
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 марта 2009 г. 0:18, спустя 3 минуты 45 секунд

    как бля может работать $_SESSION если не было запуска session_start ?
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 марта 2009 г. 0:45, спустя 27 минут 9 секунд

    ну хуй с ним я сам написал session_start(); и как бы я его не ставил до или после ob_start('ob_gzhandler'); не пашет
  • Trej Gun

    Сообщения: 5305 Репутация: N Группа: в ухо

    Spritz 22 марта 2009 г. 1:35, спустя 49 минут 51 секунду

    еще советуют

    ini_set("session.use_trans_sid", false);


    http://weblogtoolscollection.com/archives/2004/07/31/gzip-compression-issue-in-wordpress-12-mingus/

    но это не работает
  • phpdude

    Сообщения: 26646 Репутация: N Группа: в ухо

    Spritz 22 марта 2009 г. 7:09, спустя 5 часов 33 минуты 21 секунду

    CTAPbIu_MABP, какие то проблемы у тебя странные))) насколько я помню никогда с такими пролемами не сталкивался, всегда гзип хандлер работал на ура при реврайте и без него
    Сапожник без сапог

Пожалуйста, авторизуйтесь, чтобы написать комментарий!