Include: css con estensione di file php?

Mi piacerebbe racchiudere un file css in php … Quindi scrivo l'intestazione per il file css e gli do un'estensione php, quindi … css.php. La domanda è questa funziona se la pagina è già utilizzata come inclusione … o questa nuova intestazione entrerà in conflitto con il frame in cui la pagina viene inclusa in ????

gnarf l'ha inchiodato.

Lo voglio:

 <link rel="stylesheet" type="text/css" media="screen" href="<? echo TMPL ?>css/name-of-file.css.php"> 

e poi in cima al tuo file .css.php:

 <? header('Content-Type: text/css'); // print out your php-driven css... ?> 

Se hai un file chiamato css.php assicurati che le prime righe css.php l'intestazione content-type appropriata. Potresti anche voler dividere il materiale di configuration della session (se presente) in un bootstrap.php se non lo hai già fatto. Un rapido esempio di caricamento di alcune informazioni di stile da un databse:

 <?php header("Content-Type: text/css"); include('bootstrap.php'); // fetch some information to print out our styles $result = mysql_query("SELECT * FROM site_styles"); while ($row = mysql_fetch_assoc($result)) { echo $row["selector"]." {\n".$row["css"]."\n}\n"; } ?> 

Dal tuo altro file php, metti in output il tag per includere css.php, non vuoi usare la function php include() per questo task!

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

Sebbene la maggior parte dei browser memorizzerà il file css in modo piuttosto aggressivo, è ansible che la modifica dynamic dei contenuti di tale file non sia molto utile. Potresti forzare l'aggiornamento aggiungendo un parametro get all'href del link in questo modo:

 <link rel="stylesheet" type="text/css" href="css.php?<?php echo $cssversion ?>"/> 

Anche se questo sta per ricaricare completamente il tuo file css each volta che il parametro cambia. In genere, è consigliabile utilizzare file css statici per questo motivo. Se hai alcuni stili che devono essere caricati dai parametri di configuration, ecc, che non cambiano molto spesso, il primo esempio dovrebbe funzionare abbastanza bene per te.

File HTML:
<link rel="stylesheet" type="text/css" href="css.php"/>

file css.php:
<?php
header("Content-type: text/css; charset=utf-8");
//your php + css code goes here
?>

Se la tua prima row di codice nel tuo file CSS.php non lo è
header("Content-type: text/css; charset=utf-8"); non functionrà

Funzionerà se lo script includer non invierà alcun output, altrimenti si verificherà un errore " Intestazioni già inviate ".

usare ob_start () nel includer può essere un trucco per evitarlo e far funzionare tutto.

I frame Html invece non hanno nulla a che fare con gli include php, quindi non c'è alcun conflitto in questo caso.