我正在创建一些动态模板,我有一个问题,我想在外部CSS文件中使用PHP变量。
示例:
如果样式表是styles.css
,然后我想将此文件用作styles.php
,以便我可以使用此文件中的变量来使css动态化。
我应该为此做些什么。 提前谢谢。
答案 0 :(得分:9)
styles.php
(或配置服务器以在CSS文件中运行PHP解释器)。发送相应的Content-Type
标题:
header('Content-Type: text/css');
编写代码:
<?php
header('Content-Type: text/css');
$a = '#123456';
$b = '#654321';
?>
body > a {
color: <?php echo $a ?>;
}
答案 1 :(得分:2)
使用.htaccess文件和以下行:
AddType application / x-httpd-php .css
这将使您的服务器解析.css文件,就好像它们是.php。
答案 2 :(得分:1)
制作动态生成的CSS文件的问题是它们不会被缓存。你将强迫用户至少击中你的服务器两次:一次用于php输出,一次用于css。
如果您只是制作CSS动态的一些小部分,请考虑创建一个包含合适默认值的常规标准CSS文件,然后让您的PHP页面输出一个合适的<style>
块来发出覆盖。这样你的主要CSS文件就可以被缓存了,你可以以PHP文件中的几行额外输出为代价获得动态样式。
答案 3 :(得分:-1)
我知道这已经过时了,但@MarcB在缓存上不正确
这是php CSS的可缓存版本
<?php
ob_start ("ob_gzhandler");
header("Content-type: text/css; charset: UTF-8");
header("Cache-Control: must-revalidate");
$offset = 60 * 60 ;
$ExpStr = "Expires: " .
gmdate("D, d M Y H:i:s",
time() + $offset) . " GMT";
header($ExpStr);
$blue="#00f";
$red="#f00";
$green="#0f0";
?>
#div{
color:<?=$blue?>;
background:<?=$red?>
}