Как написать классы CSS в PHP-файл? - PullRequest
0 голосов
/ 23 января 2011

Я создаю некоторый динамический шаблон, и у меня возникла проблема, связанная с использованием переменных PHP во внешнем файле CSS.

Пример: , если таблица стилей равна styles.css, а затем я хочуиспользовать этот файл как styles.php, чтобы я мог использовать переменные в этом файле, чтобы сделать CSS динамическим.

Что я должен сделать для этого.Заранее спасибо.

Ответы [ 4 ]

9 голосов
/ 23 января 2011
  1. Переименование файла в styles.php (или настройка сервера для запуска интерпретатора PHP в файлах CSS).
  2. Отправьте соответствующий Content-Type заголовок:

    header('Content-Type: text/css');
    
  3. Введите свой код:

    <?php
    
    header('Content-Type: text/css');
    
    $a = '#123456';
    $b = '#654321';
    
    ?>
    
    body > a {
        color: <?php echo $a ?>;
    }
    
2 голосов
/ 23 января 2011

Используйте файл .htaccess и следующую строку:

Приложение AddType / x-httpd-php .css

Это заставит ваш сервер анализировать файлы .css, как если бы они были .php.

1 голос
/ 23 января 2011

Проблема создания динамически генерируемых CSS-файлов заключается в том, что они не будут кэшироваться. Вы будете вынуждены нажимать на ваш сервер как минимум дважды: один раз для вывода php и один раз для css.

Если вы делаете только несколько второстепенных частей CSS-динамики, рассмотрите возможность создания обычного стандартного CSS-файла с подходящими значениями по умолчанию, а затем на страницах PHP выведите подходящий блок <style>, который выдает переопределения. Таким образом, ваш основной CSS-файл может быть кэширован, и вы получите динамические стили за счет нескольких дополнительных строк вывода в вашем PHP-файле.

0 голосов
/ 22 июня 2014

Я знаю, что это старый, но @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?>
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...