Afficher et compresser du CSS en PHP

0.00 avg. rating (0% score) - 0 votes
Partager:

Pour un script je voulais créer du CSS dynamiquement en PHP. Donc on doit déclarer un header pour dire qu’on envoie du CSS au navigateur:


header("Content-type: text/css");

Ensuite pour faire plus propre, je modifie l’extension du fichier pour avoir .css et pas .php:


RewriteEngine on
Options +FollowSymlinks

RewriteRule ^(.+)\.css$ $1.php [QSA]

Ainsi le CSS généré paraitra comme un fichier CSS comme les autre ensuite pour le compressé j’ai donc décidé d’utiliser ob_start() qui va mettre en tampon les données écrites après celle si et ob_end_flush() qui permet d’arrêter la mise en tampon et d’envoyer les données au navigateur.

Mais la pour le moment ça sert pas à grand chose. On va donc passé un paramètre à la fonction ob_start() qui sera le nom d’une fonction à exécuter que j’ai appelé: « css_compress »:


ob_start('css_compress');

/* Le code CSS ici sera modifié */

ob_end_flush();

Ainsi tout le code qui sera entre les deux fonctions sera modifié par la fonction passé en paramètre qui est:


function css_compress($buffer) {
    $buffer = preg_replace('!/\*[^*]*\*+([^/][^*]*\*+)*/!', '', $buffer);
    $buffer = str_replace(array("\r\n", "\r", "\n", "\t", '  ', '    ', '    '), '', $buffer);
    return $buffer;
}

Rien de plus simple^^.


Tous les codes sont testés et sont fonctionnels, si un de ces codes ne marche pas chez vous, merci de me le signaler.
Partager:
0.00 avg. rating (0% score) - 0 votes

Vous aimerez aussi...

Laisser un commentaire