2011-01-23 2 views
0

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

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

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

ответ

2

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

AddType применение/х-HTTPD-PHP .css

Это сделает ваш сервер PARSE .css файлы, как если бы они были. PHP.

+0

Звуков уместно, но все .css файлы будут обрабатываться с помощью PHP. Если он все еще использует много статических CSS-уставов, должно произойти небольшое снижение производительности. Во всяком случае +1 –

+0

спасибо за это, но я хочу знать, что я должен использовать. header() в файле php или настройке конфигурации в файле .htaccess. Который преодолевает временные накладные расходы, а также проблемы на уровне сервера при любой проблеме или загрузке страницы. – GitsD

+0

@ djechelon, Да - это следует учитывать. –

9
  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 ?>; 
    } 
    
+4

Подозреваю, что вы также захотите поместить некоторые «не кешируйте мне» заголовки. (Или, может быть, я просто параноик.) :-) –

+0

Существует какой-либо недостаток использования конфигурации сервера вместо заголовка и наоборот. – GitsD

+0

спасибо за это @ crozin..it отлично работает ... – GitsD

1

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

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

+0

за предоставленную информацию. – GitsD

-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?> 
} 
Смежные вопросы