Controlar CSS con PHP

Cuando incluimos un archivo css dentro de un php lo hacemos del siguiente modo:

<link href="estilo.css" rel="stylesheet" type="text/css" />

Para poder ejecutar PHP dentro de un fichero CSS lo que necesitamos es especificar dentro de un PHP un content-type como text/css:

header(“Content-type: text/css");

Así pues lo que tendríamos, por ejemplo sería un archivo estilo.php que ejecutará comandos PHP y que se "renderizará" en el cliente como una hoja de estilos. Para incluirlo dentro de nuestros documentos lo haríamos con la siguiente instrucción:

<link href="estilo.php" rel="stylesheet" type="text/css" />

La inclusión de PHP puede hacer que tengamos mucha más versatilidad sobre el CSS. Por ejemplo que muestre un color de fondo dependiendo del día de la semana que sea.

<?php
header("Content-type: text/css");
$diasem = date("l");
  switch ($diasem) {
    case "Sunday":
           echo "body {background-color: #FF0000;}";
    break;
    case "Monday":
           echo "body {background-color: #CCCCCC;}";
    break;
    case "Tuesday":
           echo "body {background-color: #CCFFCC;}";
    break;
    case "Wednesday":
           echo "body {background-color: #336699;}";
    break;
    case "Thursday":
           echo "body {background-color: #00FF00;}";
    break;
    case "Friday":
           echo "body {background-color: #0000FF;}";
    break;
    case "Saturday":
           echo "body {background-color: #FFFFFF;}";
    break;
}
?>

Quizá la funcionalidad más interesante sea la de servir determinados aspectos del CSS en función del navegador cliente a través de la variable $HTTP_USER_AGENT variable. En este ejemplo, en función de si el navegador es Internet Explorer o FireFox, se otorgan unas características u otras al div "contenedor".

<?php
header("Content-type: text/css"); 
if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE')== true) { ?>
#contenedor { 
     margin-left:30px; 
     width: 700px; 
     text-align:left; 
     background-color:#FF0000; 
} 
<?php } elseif (strpos($_SERVER['HTTP_USER_AGENT'], 'Firefox') == true) {?> 
#contenedor { 
     margin-left: 50px; 
     width: 650px; 
     text-align:left; 
} 
<?php
} 
?>