lateralcode.com nous explique comment réaliser un Minifier de code CSS en PHP. Très pratique si vous souhaitez alléger le poids de vos styles CSS et améliorer les performances de chargement de votre site.

L'objectif étant de créer un script de réduction automatique du CSS, sans avoir à le compiler à chaque modification à l'aide d'un service web ou d'une librairie quelconque.
Commençons par créer la fonction de Minification du code CSS:
function minify( $css ) {
$css = preg_replace( '#/*.*?*/#s', '', $css );
$css = preg_replace( '#s+#', ' ', $css );
$css = str_replace( '; ', ';', $css );
$css = str_replace( ': ', ':', $css );
$css = str_replace( ' {', '{', $css );
$css = str_replace( '{ ', '{', $css );
$css = str_replace( ', ', ',', $css );
$css = str_replace( '} ', '}', $css );
$css = str_replace( ';}', '}', $css );
return trim( $css );
}
Une fonction très simple qui permet de faire tout le travail de réduction d'espaces.
Maintenant que l'on a notre fonction, nous voulons pouvoir l'utiliser dynamiquement au chargement de notre fichier CSS:
<link rel="stylesheet" type="text/css" file="minify.php?css=styles.css" />
Ce qui nous donne finalement la page minify.php suivante:
<?php
header( "Content-type: text/css" );
$file = isset( $_GET[ 'css' ] ) ? $_GET[ 'css' ] : '';
if( !file || array_pop( split( '.', $file ) ) != 'css' || strpos( $file, '/' ) !== false )
die( 'Invalid Parameters' );
$content = @file_get_contents( $file );
echo minify( $content );
function minify( $css ) {
$css = preg_replace( '#/*.*?*/#s', '', $css );
$css = preg_replace( '#s+#', ' ', $css );
$css = str_replace( '; ', ';', $css );
$css = str_replace( ': ', ':', $css );
$css = str_replace( ' {', '{', $css );
$css = str_replace( '{ ', '{', $css );
$css = str_replace( ', ', ',', $css );
$css = str_replace( '} ', '}', $css );
$css = str_replace( ';}', '}', $css );
return trim( $css );
}
?>
Un code qui peut vous être utile! Reste à rajouter un système de cache et le script sera parfait.
Retrouvez toute la démarche sur le Site Officiel
A voir aussi sur le même sujet:
Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:
Compte la Ferme du WebIdentifiez-vousInscrivez-vous |
Compte Facebook |
Compte Twitter
|