<?php
 
 
/**
 
 * Wave Framework <http://github.com/kristovaher/Wave-Framework>
 
 * Minifier Class
 
 *
 
 * Minifier is used to minify text data without breaking functionality of that text. This is 
 
 * useful to be applied to JavaScript, CSS Stylesheets, HTML and XML formats for purposes of 
 
 * making the file size smaller, thus increasing the performance when file is transferred over 
 
 * HTTP. You should be careful when using minifier however, since it might break functionality 
 
 * under some instances, so it is always good to test before deploying minified resources to 
 
 * live systems.
 
 *
 
 * @package    Minifier
 
 * @author     Kristo Vaher <[email protected]>
 
 * @copyright  Copyright (c) 2012, Kristo Vaher
 
 * @license    GNU Lesser General Public License Version 3
 
 * @tutorial   /doc/pages/minifier.htm
 
 * @since      1.7.0
 
 * @version    3.4.8
 
 */
 
 
class WWW_Minifier {
 
    
 
    /**
 
     * This method removes comments, tabs, spaces, new-lines and various other spaces from 
 
     * text. It assumes that text is in a CSS-like format.
 
     *
 
     * @param string $data data string to be minified
 
     * @return string
 
     */
 
    public static function minifyCSS($data){
 
    
 
        // Removing comments
 
        $data=preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!','',$data);
 
        // Removing tabs, spaces and newlines
 
        $data=str_replace(array("\r\n","\r","\n","\t",'  ','    ','     '), '', $data);
 
        // Removing other spaces before and after
 
        $data=preg_replace(array('(( )+{)','({( )+)'),'{',$data);
 
        $data=preg_replace(array('(( )+})','(}( )+)','(;( )*})'),'}',$data);
 
        $data=preg_replace(array('(;( )+)','(( )+;)'),';',$data);
 
        //Returning minified string
 
        return $data;
 
        
 
    }
 
    
 
    /**
 
     * This method removes comments, tabs, spaces, new-lines and various other spaces from 
 
     * text. It assumes that text is in a JavaScript-like format.
 
     *
 
     * @param string $data data string to be minified
 
     * @return string
 
     */
 
    public static function minifyJS($data){
 
    
 
        // Removing comments
 
        $data=preg_replace('/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/','',$data);
 
        // Removing tabs and newlines
 
        $data=str_replace(array("\r\n","\r","\n"),'',$data);
 
        // Removing whitespace
 
        $data=preg_replace('/\s+/', ' ',$data);
 
        //Returning minified string
 
        return $data;
 
        
 
    }
 
    
 
    /**
 
     * This method removes comments, tabs, spaces, new-lines and various other spaces from 
 
     * text. It assumes that text is in a HTML-like format.
 
     *
 
     * @param string $data data string to be minified
 
     * @return string
 
     */
 
    public static function minifyHTML($data){
 
    
 
        // Remove newlines and tabs
 
        $data=preg_replace('/[\r\n\t]/i','',$data);
 
        // Remove comments
 
        $data=preg_replace('/<!--.*?-->/i','',$data);
 
        //Returning minified string
 
        return $data;
 
        
 
    }
 
    
 
    /**
 
     * This method removes comments, tabs, spaces, new-lines and various other spaces from 
 
     * text. It assumes that text is in a XML-like format.
 
     *
 
     * @param string $data data string to be minified
 
     * @return string
 
     */
 
    public static function minifyXML($data){
 
    
 
        // Remove newlines and tabs
 
        $data=preg_replace('/[\r\n\t]/i','',$data);
 
        // Remove comments
 
        $data=preg_replace('/<!--.*?-->/i','',$data);
 
        //Returning minified string
 
        return $data;
 
        
 
    }
 
    
 
}
 
    
 
?>
 
 |