<?php /** * Compression functions. * * @package Pen */ if ( ! function_exists( 'pen_compress_css' ) ) { /** * Removes empty lines and white space from CSS. * * @param string $input The input CSS. * * @since Pen 1.0.0 * @return string */ function pen_compress_css( $input ) { // Removes blank lines. $output = preg_replace( '/(^[\r\n]*|[\r\n]+)[\s\t]*[\r\n]+/', "\n", trim( $input ) ); // Removes comments. $output = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $output ); // Removes indentation. $trimmed = array(); $output = explode( "\n", $output ); foreach ( $output as $output ) { $trimmed[] = trim( $output ); } $output = implode( $trimmed ); $search = array( '{ ', ' }', '; ', ', ', ' {', '} ', ': ', ' ,', ' ;', ';}' ); $replace = array( '{', '}', ';', ',', '{', '}', ':', ',', ';', '}' ); $output = str_replace( $search, $replace, $output ); return $output; } } if ( ! function_exists( 'pen_compress_html' ) ) { /** * Compresses HTML code. * * @param string $input The input. * * @since Pen 1.0.0 * @return string */ function pen_compress_html( $input ) { if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) { return $input; } $search = array( '/\>[^\S ]+/s', '/[^\S ]+\</s', '/(\s)+/s' ); $replace = array( '>', '<', '\\1' ); $output = preg_replace( $search, $replace, $input ); $output = preg_replace( '!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $output ); $output = trim( $output ); return $output; } }