PRATIQUE PHP 
Des CSS dynamiques via PHP
 
Comment gérer ses feuilles de style directement depuis le système d'administration d'un site. (18/02/2005)

 

Le PHP n'est le plus souvent utilisé que dans le but de remplir des modèles de page HTML… alors qu'il est possible de l'appliquer à d'autres types de fichier, dont la feuille de style. Tout comme HTML, un fichier CSS peut-être rendu dynamique, et voir son contenu totalement intégré à un possible back-office : l'administrateur du site n'a donc plus à fignoler avec un éditeur de texte pour modifier une couleur.

  Forum

Réagissez dans les forums de JDN Développeurs

Pour convertir un fichier CSS en PHP, il suffit de passer son extension en .php (de style.css à style.php, par exemple), et de mettre en toute première ligne l'entête HTTP suivant :

<?php header("Content-type: text/css"); ?>

Le modèle de page HTML appellera ensuite directement le fichier via une balise link:

<link rel="stylesheet" type="text/css" media="screen" href="style.php">

Le contenu de style.php peut dès lors être parfaitement dynamique :

<?php
header("Content-type: text/css");
require_once("options.php");
?>
body {
background: <?=$cssBodyBackground ?>;
color: <?=$cssBodyColor?>;
}
h1, h2, h3, h4 {
color: <?=$cssHColor?>;
}
blockquote {
color: <?=$cssBlockquoteColor ?>;
}

Attention cependant : le fichier CSS devra être généré à chaque chargement de page, et non "caché" en mémoire comme tout fichier statique. Une CSS dynamique doit donc répondre à un besoin précis.

Une solution serait, alors, d'ajouter un entête au fichier :

<?php header("HTTP/1.0 304 Not Modified"); ?>

Le code 304 permet d'indiquer au navigateur que la page n'a pas été modifiée depuis le dernier chargement, et qu'il peut donc utiliser la version stockée dans son cache...

 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page