ProfiPHPProfiPHP
Категория: Полезное в PHP

Оптимизация кода на PHP

В процессе сжатия все комментарии к коду, переносы строк, лишние символы табуляции и пробельные символы удаляются. Это позволяет сэкономить 10...20% от оригинального размера файла.

Оптимизация HTML происходит следующим образом:
<?php
function sanitize_output($buffer) {
$search = array( '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s' );
$replace = array( '>', '<', '\\1' );
$buffer = preg_replace( $search, $replace, $buffer );
return $buffer;
}
ob_start("sanitize_output");
?>
<html>
...
</html>
<?php
ob_end_flush( );
?>
Оптимизация CSS кода:
function compressCss( $buffer ) {
// Remove comments
$buffer = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer );
// Remone Other
$buffer = str_replace(
array( "; }", ";}", ": ", "\r\n", "\r", "\n", "\t", ' ', ' ', ' ', ' ' ),
array( '}', '}', ':', '', '', '', '', '', '', '', '' ),
$buffer );
// Remove other spaces before/after
$buffer = preg_replace( array( '(( )+\))', '(\)( )+)'), ')', $buffer );
return '<style type="text/css">'.$buffer.'</style>';
}
Оптимизация JS кода:
function compressJs( $buffer ) {
// Remove comments
$buffer = preg_replace( '/(?:(?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:(?<!\:|\\\|\'|\")\/\/.*))/', '', $buffer );
// Remove Other
$buffer = str_replace(
array( ": ", " =", "= ", "\r\n", "\r", "\n", "\t", ' ', ' ', ' ', ' ' ),
array( ':', '=', '=', '', '', '', '', '', '', '', '' ),
$buffer );
// Remove other spaces before/after
$buffer = preg_replace( array( '(( )+\))', '(\)( )+)'), ')', $buffer );
return '<script type="text/javascript">'.$buffer.'</script>';
}
Соответственно выполняем подключение:
<!-- Style -->
<?php ob_start( "compressCss" ); echo '<style type="text/css">'; include( $_SERVER['DOCUMENT_ROOT'].'/style.css' ); echo '</style>'; ob_end_flush( ); ?>
<!-- Jquery -->
<?php ob_start( "compressJs" ); echo '<script type="text/javascript">'; include( $_SERVER['DOCUMENT_ROOT'].'/jquery.js' ); echo '</script>'; ob_end_flush( ); ?>

Добавить комментарий

Имя:
Текст комментария: