HTML Pretty-Min
, (*1)
HTML Pretty-Min is a PHP library for minifying and prettyprinting (indenting) HTML documents
that works directly on the DOM tree of an HTML document., (*2)
Currently it has the following features:, (*3)
-
Prettyprint:, (*4)
- Indent Block-level elements, do not indent inline elements
-
Minify:, (*5)
- Remove whitespace and newlines
- Compress embedded Javascript using mrclay/jsmin-php
- Compress embedded CSS using tubalmartin/cssmin
- Remove some attributes when their value is empty (by default "style" and "class" attributes)
- Remove comments, except those matching some given regular expressions (by default, IE conditional comments are kept)
Installation
HTML Pretty-Min is listed on Packagist., (*6)
composer require wa72/html-pretty-min
, (*7)
Usage
<?php
use Wa72\HtmlPrettymin\PrettyMin;
$pm = new PrettyMin();
$output = $pm
->load($html) // $html may be a \DOMDocument, a string containing an HTML code,
// or an \SplFileInfo pointing to an HTML document
->minify()
->saveHtml();
For prettyprinting, call the indent()
method instead of minify()
., (*8)
Attention: Because the formatting is done directly on the DOM tree, a DOMDocument object given to the load()
method
will be modified:, (*9)
$dom_document = new \DOMDocument('1.0', 'UTF-8');
$dom_document->loadHTML('<html>...some html code...</html>');
$pm->load($dom_document)->minify();
echo $dom_document->saveHTML(); // Will output the minified, not the original, document