Как минимизировать вывод hpml страницы php? - PullRequest
131 голосов
/ 03 июня 2011

Я ищу сценарий php или класс, который может минимизировать вывод hpml моей страницы php, как это делает скорость страницы Google.

Как я могу это сделать?

Ответы [ 13 ]

1 голос
/ 08 июля 2017

Если вы хотите удалить все новые строки на странице, используйте этот быстрый код:

ob_start(function($b){
if(strpos($b, "<html")!==false) {
return str_replace(PHP_EOL,"",$b);
} else {return $b;}
});
0 голосов
/ 03 января 2016

Вы можете использовать хорошо протестированный Java minifier, такой как HTMLCompressor , вызвав его с помощью passthru (exec).
Не забудьте перенаправить консоль, используя 2>&1

Это, однако, может быть бесполезно, если важна скорость. Я использую его для статического вывода php

0 голосов
/ 18 августа 2015

Благодаря Эндрю . Вот что сделал, чтобы использовать это в cakePHP:

  1. Скачать minify-2.1.7
  2. Распакуйте файл и скопируйте подпапку min в папку Vendor торта
  3. Создает MinifyCodeHelper.php в View / Helper торта, как это:

    App::import('Vendor/min/lib/Minify/', 'HTML');
    App::import('Vendor/min/lib/Minify/', 'CommentPreserver');
    App::import('Vendor/min/lib/Minify/CSS/', 'Compressor');
    App::import('Vendor/min/lib/Minify/', 'CSS');
    App::import('Vendor/min/lib/', 'JSMin');
    class MinifyCodeHelper extends Helper {
        public function afterRenderFile($file, $data) {
            if( Configure::read('debug') < 1 ) //works only e production mode
                $data = Minify_HTML::minify($data, array(
                    'cssMinifier' => array('Minify_CSS', 'minify'),
                    'jsMinifier' => array('JSMin', 'minify')
                ));
            return $data;
        }
    }
    
  4. Включен мой помощник в AppController

    public $ helpers = array ('Html', '...', 'MinifyCode');

5 ... Вуаля!

Мой вывод: если на вашем сервере отключены модули apache deflate и headers, вы получаете на 21% меньше размера и на 0,35 с плюс в запросе на сжатие (это число было в моем случае)

Но если вы включили модули apache, сжатый ответ не имеет существенной разницы (1,3% для меня), и время сжатия составляет то же самое (0,3 с для меня).

Так ... почему я это сделал? все документы моего проекта в комментариях (php, css и js), и мой конечный пользователь не должен видеть это;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...