javascript — класс php для объединения файлов css и js перед загрузкой

Я ищу способ объединить внешние CSS-файлы и даже встроенные CSS-коды с php Перед загрузкой HTML, а затем добавить их во внешний файл со всеми кодами CSS на странице.

Я хочу добавить эту способность для js файлы тоже.

В настоящее время у меня есть функция минимизировать HTML, который удаляет пробелы и новые строки из HTML.

function _minify_html($input) {
return preg_replace_callback('#<\s*([^\/\s]+)\s*(?:>|(\s[^<>]+?)\s*>)#', function($m) {
if(isset($m[2])) {

return '<' . $m[1] . preg_replace(
array(
// From `defer="defer"`, `defer='defer'`, `defer="true"`, `defer='true'`, `defer=""` and `defer=''` to `defer` [^1]
'#\s(checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)(?:=([\'"]?)(?:true|\1)?\2)#i',
// Remove extra white-space(s) between HTML attribute(s) [^2]
'#\s*([^\s=]+?)(=(?:\S+|([\'"]?).*?\3)|$)#',
// From `<img />` to `<img/>` [^3]
'#\s+\/$#'
),
array(
// [^1]
' $1',
// [^2]
' $1$2',
// [^3]
'/'
),
str_replace("\n", ' ', $m[2])) . '>';
}
return '<' . $m[1] . '>';
}, $input);
}function minifyHtml($buffer) {
$buffer = _minify_html($buffer);
return
// remove ws outside of all elements
preg_replace( '/>(?:\s\s*)?([^<]+)(?:\s\s*)?</s', '>$1<',
// remove ws around all elems excepting script|style|pre|textarea elems
preg_replace(
'/\s+(<\\/?(?!script|style|pre|textarea)\b[^>]*>)/i', '$1',
// trim line start
preg_replace( '/^\s\s*/m', '',
// trim line end
preg_replace( '/\s\s*$/m', '',
// remove HTML comments (not containing IE conditional comments)
preg_replace_callback(
'/<!--[^ShowThitComment]([\s\S]*?)-->/',
function( $m ) {
return ( 0 === strpos($m[1], '[' ) || false !== strpos( $m[1], '<![' ) ) ? $m[0] : '';
},
// start point
$buffer
)
)
)
)
)
;
}

заранее спасибо

1

Решение

Вы бы добились того, чего хотите, более эффективно, используя Gulp. смотреть на Глоток-чисто CSS для минимизации CSS и проглатывать-уродовать для минимизации JS.

Чтобы начать с глотком Вот это хорошее место.

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector