2015-11-17 3 views
0

У меня есть следующий код, который его работает нормально с PHP 5.3ob_gzhandler режим причина пустой страницы

function minimize($__OUTPUT_BUUFER__) { 
     $__OUTPUT_BUUFER__ = str_replace(array("\r", "\r\n", "\n", "\t", " "), "", $__OUTPUT_BUUFER__); 
     return ob_gzhandler($__OUTPUT_BUUFER__,3); 
    } 

ob_start("minimize"); 

У меня есть перейти на PHP 5.5 и он не работает вообще. Я продолжаю получать пустую страницу.

Если я изменяю режим ob_gzhandler на 1 или 4 или 5 или 6 его рабочий штраф Если я использую 2 или 3, он вообще не работает.

Может ли кто-нибудь помочь мне найти, почему он не работает с режимом 3, потому что код находится внутри большого количества файлов, поэтому, если мне нужно изменить режим на что-то еще, у меня есть много файлов для изменения.

Благодаря

ответ

1

цифрой «3» вы передаете функции ob_gkhandler является режим. Режим должен представлять собой композицию из этих констант:

PHP_OUTPUT_HANDLER_START 
PHP_OUTPUT_HANDLER_CONT 
PHP_OUTPUT_HANDLER_END 

Численные значения этих констант изменилась по версии PHP:

php 5.3: 
PHP_OUTPUT_HANDLER_START = 1 
PHP_OUTPUT_HANDLER_CONT = 2 
PHP_OUTPUT_HANDLER_END = 4 

php 5.4: 
PHP_OUTPUT_HANDLER_START = 1 
PHP_OUTPUT_HANDLER_CONT = 0 
PHP_OUTPUT_HANDLER_END = 8 

og_gzhandler внутренний код должен иметь изменение соответствующим образом.

Итак, да, вы должны будете изменить свой код каждый раз, когда в вашем скрипте, чтобы он работал с php5.5. Предпочитайте использовать эти константы вместо необработанных числовых значений.

Ваш предыдущий режим был "3", который соответствует режиму: "PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_CONT"

Так используйте:

 return ob_gzhandler($__OUTPUT_BUUFER__,PHP_OUTPUT_HANDLER_START | PHP_OUTPUT_HANDLER_CONT); 

);

+0

Отличный ответ, спасибо, я не мог найти это независимо от того, что я сделал поиск в Интернете – ntan

Смежные вопросы