Magazine Internet

Utiliser des feuilles de style dynamiques avec PHP

Publié le 23 décembre 2008 par Marie

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


Retour à La Une de Logo Paperblog

LES COMMENTAIRES (1)

Par Benoit
posté le 14 janvier à 10:25
Signaler un abus

Merci pour cet article ;)

Bien que, lorsqu'on travaille avec un designer qui ne connaît pas le php, il vaut mieux éviter l'intrusion de code dans ses feuilles de styles, on voit bien que php peut tout gérer dans un site web... Absolument tout!

A propos de l’auteur


Marie 27 partages Voir son profil
Voir son blog

l'auteur n'a pas encore renseigné son compte l'auteur n'a pas encore renseigné son compte