如何在php文件中编写css类?

如何在php文件中编写css类?,php,css,dynamic,Php,Css,Dynamic,我正在创建一些动态模板,我有一个问题,我想在外部CSS文件中使用PHP变量 示例: 如果样式表是styles.css,然后我想将此文件用作styles.php,这样我就可以使用此文件中的变量使css动态化 我该怎么办。 提前感谢。使用.htaccess文件和以下行: AddType应用程序/x-httpd-php.css 这将使您的服务器解析.css文件,就像它们是.php一样 将文件重命名为styles.php(或者将服务器配置为在CSS文件中运行php解释器) 发送适当的内容类型标题: he

我正在创建一些动态模板,我有一个问题,我想在外部CSS文件中使用PHP变量

示例: 如果样式表是
styles.css
,然后我想将此文件用作
styles.php
,这样我就可以使用此文件中的变量使css动态化

我该怎么办。
提前感谢。

使用.htaccess文件和以下行:

AddType应用程序/x-httpd-php.css

这将使您的服务器解析.css文件,就像它们是.php一样

  • 将文件重命名为
    styles.php
    (或者将服务器配置为在CSS文件中运行php解释器)
  • 发送适当的
    内容类型
    标题:

    header('Content-Type: text/css');
    
  • 编写代码:

    <?php
    
    header('Content-Type: text/css');
    
    $a = '#123456';
    $b = '#654321';
    
    ?>
    
    body > a {
        color: <?php echo $a ?>;
    }
    
    
    正文>a{
    颜色:;
    }
    

  • 生成动态生成的CSS文件的问题是它们不会被缓存。您将强制用户至少两次访问服务器:一次用于php输出,一次用于css


    如果只做CSS动态中的几个小部分,考虑创建一个具有适当默认值的常规标准CSS文件,然后让PHP页输出一个合适的<代码> <代码>块,以解决重写。这样,您的主CSS文件就可以被缓存,而您只需在PHP文件中额外输出几行就可以获得动态样式。

    我知道这很旧,但@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?>
     }
    
    
    #div{
    颜色:;
    背景:
    }
    
    您可能还想在其中添加一些“不要缓存我”的标题。(或者我只是有点偏执。):-)使用服务器配置代替头文件有任何缺点,反之亦然。听起来很合适,但所有的.css文件都将由PHP解析。如果他仍然使用大量的“遗留”静态CSS,则性能会略有下降。无论如何+1感谢这一点,但我想知道我应该用什么。php文件中的header()或.htaccess文件中的配置设置。它克服了时间开销以及服务器级问题(如果有)或页面加载问题。@djechelon,是的-这应该考虑在内。我以前提出的一个解决方案是使用静态CSS文件命名,扩展名为常规的.CSS,但PHP生成的文件名为*.pcss,然后,my.htaccess中的行将是AddType application/x-httpd-php.pcss,这样就不用处理静态CSS文件了。