• Optimisation>Minification -
  • Publié le :  | Modifié le :

Minifier votre code HTML CSS JS

Quelques exemples de code PHP pour pouvoir minifier vos fichier HTML, CSS et JavaScript.

1) Minifier le javascript.

  1. function compress_js($buffer) {
  2.         /* remove comments */
  3.         $buffer = preg_replace("/((?:\/\*(?:[^*]|(?:\*+[^*\/]))*\*+\/)|(?:\/\/.*))/", "", $buffer);
  4.         /* remove tabs, spaces, newlines, etc. */
  5.         $buffer = str_replace(array("\r\n","\r","\t","\n",'  ','    ','     '), '', $buffer);
  6.         /* remove other spaces before/after ) */
  7.         $buffer = preg_replace(array('(( )+\))','(\)( )+)'), ')', $buffer);
  8.         return $buffer;
  9. }

2) Minifier le CSS.

  1.  //  this function gets rid of tabs, line breaks, and white space
  2. function compress_css($buffer)
  3. {
  4.     $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
  5.     $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  '), '', $buffer);
  6.     $buffer = str_replace('{ ', '{', $buffer);
  7.     $buffer = str_replace(' }', '}', $buffer);
  8.     $buffer = str_replace('; ', ';', $buffer);
  9.     $buffer = str_replace(', ', ',', $buffer);
  10.     $buffer = str_replace(' {', '{', $buffer);
  11.     $buffer = str_replace('} ', '}', $buffer);
  12.     $buffer = str_replace(': ', ':', $buffer);
  13.     $buffer = str_replace(' ,', ',', $buffer);
  14.     $buffer = str_replace(' ;', ';', $buffer);
  15.     return $buffer;
  16. }

3) Minifier le HTML.

  1.  //  this function gets rid of tabs, line breaks, and white space
  2. function compress_html($compress)
  3. {
  4. $search = array(
  5.         '/\n/',                 // replace end of line by a space
  6.         '/\>[^\S ]+/s',         // strip whitespaces after tags, except space
  7.         '/[^\S ]+\</s',         // strip whitespaces before tags, except space
  8.         '/\> \</s',
  9.         '/(\s)+/s',             // shorten multiple whitespace sequences
  10.         '/<!--(.|\s)*?-->/', // supprime les commentaires html
  11.         '!/\*[^*]*\*+([^/][^*]*\*+)*/!' // supprime les commentaires css
  12.   );

  13. $replace = array(
  14.         ' ',
  15.         '>',
  16.         '<',
  17.         '><',
  18.         '\\1',
  19.         '',
  20.         ''
  21.   );
  22.         return preg_replace($search, $replace, $compress);
  23. }

4) Inclure la fonction.

  1. <?php
  2. ob_start('compress_html');
  3. header("Content-Type: text/html; charset=UTF-8");
  4. /* TRAITEMENT DE LA MISE EN CACHE VIA LES HEADERS */
  5. ?>
  6. <!--    LE CODE HTML ICI -->
  7. <?php ob_end_flush();
  8.         function compress_html($compress){...}
  9. ?>

En conclusion:

Voilà les bases pour avoir un code pour le web entièrement minifié. Après libre à vous d'intégrer le CSS ou le JavaScript en dur avec le PHP, ou de les inclure en chargeant un fichier .css ou .js. Il existe un exemple pour le JavaScript sur Castlesblog.com: An Update to the Dynamic JavaScript include, qui intègre des fichiers et implémente la méthode de mise en cache via les header de PHP.