Funzione per comprimere html con php

Minify HTML con PHP

Oggi vediamo come comprimere html (minify) utilizzando una semplice funzione php.

Alcune volte si ha la necessità di dover comprimere inline porzioni di html utilizzando php. Grazie alla funzione sotto-riportata potete farlo in modo molto agevole.

function htmlCompress($html)
{
    preg_match_all('!(<(?:code|pre|script).*>[^<]+</(?:code|pre|script)>)!',$html,$pre);
    $html = preg_replace('!<(?:code|pre).*>[^<]+</(?:code|pre)>!', '#pre#', $html);
    $html = preg_replace('#<!–[^\[].+–>#', '', $html);
    $html = preg_replace('/[\r\n\t]+/', ' ', $html);
    $html = preg_replace('/>[\s]+</', '><', $html);
    $html = preg_replace('/[\s]+/', ' ', $html);
    if (!empty($pre[0])) {
        foreach ($pre[0] as $tag) {
            $html = preg_replace('!#pre#!', $tag, $html,1);
        }
    }
    return $html;
}

Per richiamare la funzione vi basterà fare come segue:

$html = '
<p style="text-align: center;">Esempio di testo html</p>

<p style="text-align: center;">su più righe e spazi</p>';

echo htmlCompress($html);

Questo articolo ti è stato utile? Lascia un saluto nei commenti!

Lascia la tua opinione

×