COMPRESSER (MINIMISER) UN FICHIER CSS

Signaler
Messages postés
24
Date d'inscription
vendredi 28 mars 2008
Statut
Membre
Dernière intervention
12 juin 2011
-
marcelolipi
Messages postés
91
Date d'inscription
mercredi 15 novembre 2006
Statut
Membre
Dernière intervention
25 juillet 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/52201-compresser-minimiser-un-fichier-css

marcelolipi
Messages postés
91
Date d'inscription
mercredi 15 novembre 2006
Statut
Membre
Dernière intervention
25 juillet 2011

@->kohntark
j'aimerais s-t-p que t'apportes tes propositions de modification au lieu de juste critiquer .
Bref les critiques se doivent d'etre constructives sur site.
jparia
Messages postés
25
Date d'inscription
samedi 18 mars 2006
Statut
Membre
Dernière intervention
30 août 2010

Merci pour cette classe,

pour info, j'utilise la fonction JavaScript toute faite du site http://fmarcia.info/jsmin/test.html

http://fmarcia.info/jsmin/fulljsmin.js

qui permet de compresser sur 3 niveaux (minimum, conservateur et agressif) un code CSS ou JS
kohntark
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
21
Salut,

Je n'ai que parcouru (donc je peux dire des bêtises dans ce qui suit)

Il y a sans doute plusieurs bugs dans ta classe.
Par exemple que se passe t-il avec cette propriété :
color : rgb(100%, 64%, 0%);
Le '%' du '0%' va être supprimé, ce qui n'est pas valide.

Que se passe t-il si je renseigne $file_original mais que ce n'est pas un fichier valide ?
Que se passe t-il si j'ai une classe nommée .machin0em{...} ?
...

"return trim(eregi_replace('([^0-9])0(px|em|\%)', '\\10', ' '.$str));"
eregi_replace() est dépréciée et génère une alerte, utilise preg_replace() comme tu le fait ailleurs

Un truc comme ça peut être :
preg_replace('`[^\d.]0(px|em|%)`i', '0', $str);

Puisque tu cherches 'la petite bête' :) en tentant de gagner quelques octets par ci par là :
- tu devrais prendre en charge les différentes notations de couleurs et retenir celle qui prends le moins de place :
par exemple :
rgb(254,163,0) => #FEA300
#FEA300 => red

Valider automatiquement le fichier CSS avant et après son traitement serait un plus
Eventuellement parser une page HTML à la recherche de styles intégrés et leurs appliquer la même "punition"

Cordialement,

KOhntark-
kertimanoff
Messages postés
75
Date d'inscription
samedi 3 décembre 2005
Statut
Membre
Dernière intervention
30 juin 2013

merci, en l'ocurence le regex est deja (mal) utilisé:
il faut remplacer ça:
$content = preg_replace('#\s+#', ' ', $content); // Removes spaces
par:
$content = preg_replace('#\s#', '', $content);

et là, la batterie de str_replace n'a plus aucune utilité