1. Go to this page and download the library: Download akankov/html-min library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
$htmlMin = (new HtmlMin())
// Core
->doOptimizeViaHtmlDomParser(true) // run the DOM-based pass (doSumUpWhitespace(true) // collapse runs of whitespace in text nodes
->doRemoveWhitespaceAroundTags(false)// aggressive: also trim whitespace adjacent to block tags
->doRemoveSpacesBetweenTags(false) // aggressive: remove whitespace-only text nodes between elements
// Attribute optimization
->doOptimizeAttributes(true)
->doSortHtmlAttributes(true) // canonical attribute order → better gzip
->doSortCssClassNames(true) // canonical class order → better gzip
->doRemoveOmittedQuotes(true) // class="foo" → class=foo when safe
->doRemoveOmittedHtmlTags(true) // <p>x</p> → <p>x where the closing tag is optional
->doRemoveEmptyAttributes(true)
->doRemoveValueFromEmptyInput(true)
->doRemoveDefaultAttributes(false) // opt-in: drop defaults like form method=get
// URL attribute trimming
->doRemoveHttpPrefixFromAttributes(false)
->doRemoveHttpsPrefixFromAttributes(false)
->doKeepHttpAndHttpsPrefixOnExternalAttributes(false)
->doMakeSameDomainsLinksRelative([]) // e.g. ['example.com'] → strip host from same-site links
// Deprecated attribute cleanup
->doRemoveDeprecatedAnchorName(true)
->doRemoveDeprecatedScriptCharsetAttribute(true)
->doRemoveDeprecatedTypeFromScriptTag(true)
->doRemoveDeprecatedTypeFromStylesheetLink(true)
->doRemoveDeprecatedTypeFromStyleAndLinkTag(true)
->doRemoveDefaultMediaTypeFromStyleAndLinkTag(true)
->doRemoveDefaultTypeFromButton(false)
// Inline CSS / JS minification (opt-in, off by default)
->doMinifyInlineCss(false) // minify the contents of inline <style> blocks
->doMinifyInlineJs(false); // minify the contents of inline <script> blocks
echo $htmlMin->minify($html);
$htmlMin = (new HtmlMin())
->doMinifyInlineCss(true)
->doMinifyInlineJs(true);
echo $htmlMin->minify($html);
use MatthiasMullie\Minify; // composer nifyInlineCss(true)
->doMinifyInlineJs(true)
->setInlineCssMinifier(static fn (string $css): string => (new Minify\CSS($css))->minify())
->setInlineJsMinifier(static fn (string $js): string => (new Minify\JS($js))->minify());
echo $htmlMin->minify($html);
use Akankov\HtmlMin\Contract\DomObserver;
use Akankov\HtmlMin\Contract\HtmlMinInterface;
use Akankov\HtmlMin\HtmlMin;
final class StripDataTestIds implements DomObserver
{
public function domElementBeforeMinification(\DOMElement $element, HtmlMinInterface $htmlMin): void
{
}
public function domElementAfterMinification(\DOMElement $element, HtmlMinInterface $htmlMin): void
{
if ($element->hasAttribute('data-testid')) {
$element->removeAttribute('data-testid');
}
}
}
$htmlMin = new HtmlMin();
$htmlMin->attachObserverToTheDomLoop(new StripDataTestIds());
echo $htmlMin->minify($html);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.