Friday, 9 September 2016

Compress HTML output in Codeigniter


Compress HTML output



Hello friends today i'm sharing code of compress html output in codeIgniter.
To remove useless white spaces and extra stuff from generated HTML, except for JS.

      Step 1 : Add the compress hook in config/hooks.php

$config['enable_hooks'] = TRUE;
   Step 2 : Add in compress hook to config/hooks.php
$hook['display_override'][] = array(
    'class' => '',
    'function' => 'compress',
    'filename' => 'compress.php',
    'filepath' => 'hooks'
);
Step 3 :  define 'display_override' 
<?php  if( ! defined('BASEPATH'))exit('No direct script access allowed');
function compress()
{
    ini_set("pcre.recursion_limit", "16777");
    $CI =& get_instance();
    $buffer = $CI->output->get_output();

    $re = '%# Collapse whitespace everywhere but in blacklisted elements.
        (?>             # Match all whitespans other than single space.
          [^\S ]\s*     # Either one [\t\r\n\f\v] and zero or more ws,
        | \s{2,}        # or two or more consecutive-any-whitespace.
        ) # Note: The remaining regex consumes no text at all...
        (?=             # Ensure we are not in a blacklist tag.
          [^<]*+        # Either zero or more non-"<" {normal*}
          (?:           # Begin {(special normal*)*} construct
            <           # or a < starting a non-blacklist tag.
            (?!/?(?:textarea|pre|script)\b)
            [^<]*+      # more non-"<" {normal*}
          )*+           # Finish "unrolling-the-loop"
          (?:           # Begin alternation group.
            <           # Either a blacklist start tag.
            (?>textarea|pre|script)\b
          | \z          # or end of file.
          )             # End alternation group.
        )  # If we made it here, we are not in a blacklist tag.
        %Six';

    $new_buffer = preg_replace($re, " ", $buffer);

    // We are going to check if processing has working
    if ($new_buffer === null)
    {
        $new_buffer = $buffer;
    }

    $CI->output->set_output($new_buffer);
    $CI->output->_display();
}
/* Location: ./system/application/hooks/compress.php */

Reference By : Jérôme Jaglale
ENJOY : )   
By :-  RAJA MAHIYARIYA MAHER(tHuNdEr^fR0G)
Prompt Web Solution. Powered by Blogger.