Помогите разобраться почему не работает: Подключаем стили: <link rel="stylesheet" href="style.php" media="screen, projection"/> style.php: <?php // Отдаём верный content-type header("Content-type: text/css"); $link_color = '#00f'; $link_font_size = '20px'; ?> p { color: <?php $link_color?>; font-size: <?php $link_font_size?>; } На выходе получим: p { color: #00f; font-size: 20px; } при обработке style.php пишет Warning: Cannot modify header information - headers already sent by (output started at C:\\...\htdocs\\style.php:2) PS: и почему если css файл сделать исполняемым то тоже работать не будет???
Хм, у меня работает при таком раскладе. Вероятно, от настроек зависит. Могу предложить попробовать убрать комментарий из второй строки. PHP: <?php header("Content-type: text/css"); $link_color = '#00f'; $link_font_size = '20px'; ?> p { color: <?php echo $link_color;?>; font-size: <?php echo $link_font_size;?>; }
Заработало! Проблема крылась в кодировке: перекодировал из utf-8 в utf-8 without BOM и вуаля - наконец-то я могу использовать все прелести php внутри псевдо css файла style.css.php: PHP: <?php header('content-type:text/css');?> @charset"utf-8"; <?php /*********************************** main */?> * { margin:0; padding:0; } body { background:#eee; } <?php /************************************* iframe header */?> #header { width:100%; height:100px; } h1 { color:#f00; } <?php /*********************************** special CSS for IE */ $browser=array('firefox','opera','IE','chrome','safari'); foreach($browser as $v){if(eregi($v,$_SERVER['HTTP_USER_AGENT'])){ if($v=='chrome')break; if($v=='IE'){?> #a{ color:#f00;/* only for IE */ } <?php }}}?>