Skip to content

Compress HTML output

World Wide Web Server edited this page Jul 4, 2012 · 7 revisions

To remove useless whitespace from generated HTML, define a 'display_override' hook:

[code] $CI =& get_instance(); $buffer = $CI->output->get_output();

$search = array( '/>[^\S ]+/s', //strip whitespaces after tags, except space '/[^\S ]+</s', //strip whitespaces before tags, except space '/(\s)+/s' // shorten multiple whitespace sequences ); $replace = array( '>', '<', '\1' ); $buffer = preg_replace($search, $replace, $buffer);

$CI->output->set_output($buffer); $CI->output->_display(); [/code]

Compatible with CI caching mechanism (compressed HTML is cached).

Same thing but with HTML Tidy (PHP 5 only):

[code] $CI =& get_instance(); $buffer = $CI->output->get_output();

$options = array( 'clean' => true, 'hide-comments' => true, 'indent' => true );

$buffer = tidy_parse_string($buffer, $options, 'utf8'); tidy_clean_repair($buffer); // warning: if you generate XML, HTML Tidy will break it (by adding some HTML: doctype, head, body..) if not configured properly

$CI->output->set_output($buffer); $CI->output->_display(); [/code]

Reference: [url]http://maestric.com/en/doc/php/codeigniter_compress_html[/url]

Jérôme Jaglale

Clone this wiki locally