Подтвердить что ты не робот

Объединение и сжатие нескольких файлов JavaScript в php

Я работаю над PHP-приложением, для которого требуется восемь файлов javascript (hello web2.0).

Мне интересно, как наилучшим образом комбинировать и сжимать все файлы динамически. Я правильно формулирую вопрос?

Конечным результатом является то, что я включил бы один .js файл в заголовок и этот .js файл будет включать файлы .js в моем каталоге "includes/js".

Спасибо.

4b9b3361

Ответ 1

Вы можете использовать jsmin-php

Их пример кода:

require 'jsmin-1.1.1.php';

// Output a minified version of example.js.
echo JSMin::minify(file_get_contents('example.js'));

Вы можете легко присоединиться к нескольким js файлам, выполнив что-то вроде:

require 'jsmin-1.1.1.php';

// Output a minified version of example.js.
echo JSMin::minify(file_get_contents('example.js') . file_get_contents('example2.js'));

Ответ 2

Я использовал Minify с моими проектами jQuery/PHP с большим успехом. Он также включает кеширование, поэтому накладные расходы невелики.

В итоге я все изменил и использовал .htaccess, чтобы перенаправить все запросы в мою папку javascript на minify script, например:

<script type="text/javascript" src="/js/jquery.js,js/jquery-levitip.js,js/jquery-facebox.js,js/datepicker.js,js/ga.js"></script>

с моими внешними маршрутами HTML в мой minify script, и он возвращает все эти сценарии как один, сжатый и минированный. Таким образом, я могу определить, что включено нормально, и все происходит за кулисами.

Но в любом случае проверьте руководство пользователя на своем сайте, это очень хорошо задокументировано, и вы должны уметь вытаскивать вещи так, как вы хотите слишком. О, и это работает и для CSS.

Ответ 3

Возможно, вы могли бы использовать Yahoo JavaScript Compressor, который является инструментом командной строки, с которого вы можете начать с PHP script.

Ответ 4

Вы можете попробовать PHP Speedy Это объединит и сжимает ваши файлы JS для вас в один файл. Он также сжимает ваши HTML и CSS, и ваша страница будет загружаться намного быстрее.

Ответ 5

 function compress($buffer) {
        /* remove comments */
        $buffer = preg_replace("/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/", "", $buffer);
        /* remove tabs, spaces, newlines, etc. */
        $buffer = str_replace(array("\r\n","\r","\t","\n",'  ','    ','     '), '', $buffer);
        /* remove other spaces before/after ) */
        $buffer = preg_replace(array('(( )+\))','(\)( )+)'), ')', $buffer);
        return $buffer;
    }

Источник: http://castlesblog.com/2010/august/14/php-javascript-css-minification