Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/10/2011, 18h17   #1
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Par défaut Faire une exception dans une chaîne

Bonjour,

J'aimerais trouver une technique pour supprimer tous les espaces d'un fichier CSS. Le but est de l'optimisé en allégeant son poids.

Exemple :

Code :
1
2
3
#div {
     propriété : valeur;
}
J'ai réussi avec ce code :

Code :
str_replace(" ", "", $chaine);
Mais cela supprime tous les espaces, même ceux qui son contenu dans les accolades { et }

Donc si j'ai ce code CSS :

Code :
border: 1px solid black;
Il va me sortir ça :

Ce qui est invalide en CSS.

Ce que j'aimerais faire, c'est de dire à PHP de me virer tous les espaces excepté ceux qui sont entre un " { " et un " } " ou encore dans un commentaire (entre un " /* " et un " */ ")

Je n'arrive pas à trouver la fonction qu'il faut pour ça.

Merci.
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 19h26   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
optimiser et minimiser c'est pas la même chose, la deuxième étant pas tellement utile, le CSS c'est pas ce qui prendre la plus de place dans une page
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 19h31   #3
Membre Expert
 
Avatar de Seb33300
 
Homme Sébastien Alfaiate
Développeur Web
Inscription : janvier 2007
Messages : 1 329
Détails du profil
Informations personnelles :
Nom : Homme Sébastien Alfaiate
Âge : 26
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : janvier 2007
Messages : 1 329
Points : 1 657
Points : 1 657
Pour minimiser, tu peux utiliser la fonction preg_replace
http://www.php.net/manual/fr/function.preg-replace.php

avec l'expression régulière qui va bien

par exemple :
Code :
1
2
3
4
5
6
7
8
9
10
$css = '#div { 
     propriete : valeur  dd ;
     border : 1px solid black;
}';
 
 
$css = preg_replace('/(:|;|{|})(\s*)/', '$1', $css);
$css = preg_replace('/(\s*)(:|;|{|})/', '$2', $css);
 
echo $css;
__________________
Zend Certified Engineer PHP 5.3

« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
Seb33300 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 20h07   #4
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Citation:
optimiser et minimiser c'est pas la même chose, la deuxième étant pas tellement utile, le CSS c'est pas ce qui prendre la plus de place dans une page
Minimiser le code CSS peut diviser le poids d'une feuille .css pas deux, et pour un site à fort trafic c'est très important, notamment pour le référencement...

@Seb33300 :
Merci pour ton code, je vais tester et je te dirais quoi.
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2011, 23h45   #5
Membre Expert
 
Avatar de Eric2a
 
Homme Eric Garidacci
Inscription : septembre 2005
Messages : 1 057
Détails du profil
Informations personnelles :
Nom : Homme Eric Garidacci
Âge : 41

Informations forums :
Inscription : septembre 2005
Messages : 1 057
Points : 1 564
Points : 1 564
Salut,

Citation:
Envoyé par chok371
Minimiser [...] pour un site à fort trafic c'est très important, notamment pour le référencement.
Certes, mais cela n'a de sens que si on gère bien le cache en définissant une date d'expiration raisonable de la feuille de style.

En effet, il vaut mieux une grande feuille de style statique chargée un fois et placée dans le cache du navigateur pour une certaine durée, que d'avoir une petite feuille de style dynamique chargée à chaque changement de page.

Un site qui devrait te plaire GTMetrix pour analyser les performances.
__________________

N'oubliez pas le vote des messages utiles ainsi que le Tag [Résolu].

Mon Site Web : Corse - Actualité, Météo, Vidéos, Logiciels, ...
Eric2a est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/10/2011, 00h15   #6
Nouveau Membre du Club
 
Inscription : mars 2010
Messages : 82
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 82
Points : 27
Points : 27
Citation:
Envoyé par Eric2a Voir le message
Salut,


Certes, mais cela n'a de sens que si on gère bien le cache en définissant une date d'expiration raisonable de la feuille de style.

En effet, il vaut mieux une grande feuille de style statique chargée un fois et placée dans le cache du navigateur pour une certaine durée, que d'avoir une petite feuille de style dynamique chargée à chaque changement de page.

Un site qui devrait te plaire GTMetrix pour analyser les performances.
Merci pour le conseil. Pour résoudre ce problème je pense faire une vérification sur les feuilles de styles, si l'une d'entre elles a été modifiée, on recharge le tout, sinon on ne recharge rien.
chok371 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h51.


 
 
 
 
Partenaires

Hébergement Web