Creando un sito in PHP capita spesso di voler, o di dover, gestire dinamicamente lo stile delle pagine, ad esempio per creare template customizzabili a discrezione dell’utente, e cosi via.
La soluzione ideale, quando si lavora con i CSS, sempre quella di utilizzare un foglio di stile esterno, ovvero un file con estensione .css, il quale è a tutti gli effetti un file di testo e, come tale, non è manovrabile incorporando al suo interno codice PHP che lo dinamizzi.
La soluzione è dunque quella di creare un figlio di stile con estensione .php e di modificarne le intestazioni, rendendolo intelligibile come un foglio di stile agli occhi del browser, ma resta un file PHP e come tale, manovrabile a proprio piacimento.
Includeremo dunque il nostro foglio di stile PHP, che chiameremo style.php, nelle pagine del sito attraverso la seguente inclusione HTML dedicata ai CSS:
<link rel="stylesheet" type="text/css" href="style.php">
Le casistiche di utilizzo del sistema che fino ad ora abbiamo introdotto, e che tra poco metteremo in pratica, sono moltissime. E’ possibile creare dinamicamente le porzioni utili di codice CSS reperendo i valori da un database, da un XML, da un array, oppure effettuando delle condizioni in funzione di cookies, querystring, e cosi via.
Trattandosi di un esempio a scopo prettamente didattico, ci limiteremo a costruire la struttura del file PHP che fungerà da foglio di stile, semplicemente impostando delle costanti (che, ricordo, in PHP essere “variabili di sola lettura”) che conterranno i valori che dinamizzano la struttura del CSS.
Segue il codice del file style.php:
<?
header("Content-type: text/css");
$sfondo_pagina = "#FFFFFF";
$colore_testo = "#000000";
$dimensioni_paragrafo = "13px";
$carattere_paragrafo = "Tahoma";
?>
body
{
background: <?echo $sfondo_pagina;?>;
color: <?echo $colore_testo;?>;
}
p
{
font-size: <?echo $dimensioni_paragrafo;?>;
font-family: <?echo $carattere_paragrafo;?>;
}
La fase fondamentale del semplicissimo script che abbiamo creato per gestire i CSS del sito con PHP è la seguente:
header("Content-type: text/css");
E’ l’intestazione PHP con la quale andiamo a modificare il MIME-Type della pagina, impostandolo su text/css.
L’output CSS che otterremo sarà il seguente:
body
{
background: #FFFFFF;
color: #000000;
}
p
{
font-size: 13px;
font-family: Tahoma;
}
