Объединение и сжатие нескольких файлов JavaScript в php - PullRequest
12 голосов
/ 15 мая 2009

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

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

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

Спасибо.

Ответы [ 5 ]

15 голосов
/ 15 мая 2009

Вы можете использовать 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'));
7 голосов
/ 15 мая 2009

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

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

<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, и он возвращает все эти скрипты как один, сжатый и свернутый. Таким образом, я могу определить включения нормально, и все происходит за кулисами.

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

2 голосов
/ 15 мая 2009

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

0 голосов
/ 21 февраля 2013
 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

0 голосов
/ 23 января 2013

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

...