Qwix [fr] nous propose un Colorisateur syntaxique de CSS , utilisable sur n'importe quelle page web ou blog pour mettre en valeur une partie de code CSS.
Voici le code de la fonction :
<?php function cssColor(&$texteAColorer) { //je remplace déjà les chaines entre doubles quotes en premier lieu dans les CSS sinon tout merde: $texteAColorer = preg_replace('#("[a-z0-9\s.-]+")#i', '< span class="couleurChaine">$1</span>', $texteAColorer) ; $patterns = array( //je récupère le nom de la CSS '#^([a-z0-9.:@*\s,\#_><+\[\|=\]()"-]+[\s]*{)#mi', //je récupère les commentaires dans les css '#(/\*[^/\*]+\*/)#', //je récupère le texte entre les accolades, mais avant le ':' '#^([\t]*[\s]*[a-z0-9_-]+[\s]?):(?![\s\t]*{)#mi', //je récupère le texte entre les accolades, mais après le ':' jusqu'au ';' //ET NON SUIVI D'UNE FIN DE COMMENTAIRE => */ '#(.*?)(;|})(?!(?:.*?)\*/)#', ) ; $remplacements = array( '<span class="couleurSelecteur">$1</span>', '<span class="couleurCommentaire">$1</span>', '<span class="couleurPropriete">$1</span>< span class="couleurSelecteur">:</span>', '<span class="couleurValeur">$1</span>< span class="couleurSelecteur">$2</span>' ) ; $texteAColorer = preg_replace($patterns, $remplacements, $texteAColorer) ; }//fin fonction colorationSyntaxique ?>
La fonction s'utilise ainsi :
<?php $css = 'votre code CSS' ; cssColor($css) ; echo nl2br($css) ; ?>
Vous avez la possibilité de faire vos tests ou de reporter les éventuels bugs sur le Blog de Qwix
Voici, pour exemple, un extrait de la CSS des tutos d'Alsacréations:
html, body { width: 100%; height: 100%; }
body { margin : 0; padding : 0; font-family : Verdana, Arial, Helvetica, sans-serif; font-size : 0.8em; background-color: white; }
#header { height : 100px; background : url(header.jpg) top left no-repeat; margin:0; position: absolute; left:0; top:0; width: 100%; }
#slogan { margin-left: 180px; margin-top: 50px; }
EDIT : Vous retrouverez la version définitive et corrigée du colorisateur à cette adresse.