Utiliser des feuilles de style dynamiques avec PHP
Par Laurent PEREIRA, mardi 23 décembre 2008 à 11:13 :: Trucs et Astuces PHP :: #5145 :: rss
En attendant qu’une prochaine version de CSS gère les variables, voici quelques techniques simples pour ajouter du code PHP à vos CSS de manière à pouvoir gérer des feuilles de style dynamiques.
La première solution consiste à se servir d’un fichier PHP en tant que « text/css ». Pour cela il suffit d’appeler le fichier PHP au sein d’une balise comme ceci :
< link rel="stylesheet" href="styles.php" type="text/css" />
Le fichier style.php, quand a lui, doit faire l’objet de quelques configurations supplémentaires au niveau du header afin de préciser explicitement au navigateur que le fichier doit être considéré comme une feuille de style. Pour cela il suffit d’ajouter avant la génération du contenu le code suivant:
header('content-type: text/css');
A noter aussi, qu’à la différence d’une feuille de style, le fichier PHP ne sera pas placé en cache et sera rechargé systématiquement. Pour remédier à ce problème quelques configurations supplémentaires s’imposent :
header('HTTP/1.0 304 Not Modified');
header('Cache-Control: max-age=3600, must-revalidate');
Une second solution est possible mais nécessite l’utilisation du .htaccess. Cette technique consiste à spécifier au serveur d’interpréter les feuilles de style comme étant des fichiers PHP en ajoutant au .htaccess la ligne ci-dessous :
AddType application/x-httpd-php .css
A présent, il ne reste plus qu’a inclure du code au sein de la feuille de style. Voici un exemple simple permettant de modifier la couleur de fond en fonction d’une variable stockée en session :
< ?php
header( 'content-type: text/css' );
session_start();
$_SESSION[‘background_color’] = ‘#666666’;
?>
body {
background: < ?php $_SESSION[‘background_color’]; ?>;
}
Source : developpez.com






Commentaires
#1 - Le jeudi 25 décembre 2008 à 19:34, par JrM
#2 - Le jeudi 15 janvier 2009 à 00:45, par Josselin
Ajouter un commentaire
Vous pouvez soumettre un commentaire en remplissant le formulaire ci-dessous. Toutes les contributions font l'objet d'une étape de modération par notre équipe.
Le code HTML dans le commentaire sera affiché comme du texte, les adresses internet seront converties automatiquement.