Я хотел бы обернуть файл css в php … Поэтому я пишу заголовок для файла css и даю ему расширение php, таким образом … css.php. Вопрос в том, будет ли это работать, если страница уже используется в качестве include … или будет ли это новое столкновение заголовка с фреймом, на котором страница будет включена? ????
Гнарф прибил его.
Я делаю:
<link rel="stylesheet" type="text/css" media="screen" href="<? echo TMPL ?>css/name-of-file.css.php">
а затем в верхней части вашего .css.php файла:
<? header('Content-Type: text/css'); // print out your php-driven css... ?>
Если у вас есть файл css.php
просто убедитесь, что первые строки задали правильный заголовок типа содержимого. Вы также можете разделить свой файл настройки сеанса (если он есть) в bootstrap.php
если вы еще этого не сделали. Быстрый пример загрузки некоторой информации о стиле из базы данных:
<?php header("Content-Type: text/css"); include('bootstrap.php'); // fetch some information to print out our styles $result = mysql_query("SELECT * FROM site_styles"); while ($row = mysql_fetch_assoc($result)) { echo $row["selector"]." {\n".$row["css"]."\n}\n"; } ?>
в<?php header("Content-Type: text/css"); include('bootstrap.php'); // fetch some information to print out our styles $result = mysql_query("SELECT * FROM site_styles"); while ($row = mysql_fetch_assoc($result)) { echo $row["selector"]." {\n".$row["css"]."\n}\n"; } ?>
Из другого php-файла просто выведите тег, чтобы включить css.php, вы не хотите использовать функцию php include()
для этой задачи!
<link rel="stylesheet" type="text/css" href="css.php"/>
Хотя, поскольку большинство браузеров довольно быстро кэширует ваш файл css, вы можете обнаружить, что динамическое изменение содержимого этого файла не очень хорошо. Вы можете заставить это обновить, добавив параметр get в ссылку href ссылки так:
<link rel="stylesheet" type="text/css" href="css.php?<?php echo $cssversion ?>"/>
Хотя это будет полностью перезагружать ваш файл css каждый раз, когда этот параметр изменяется. По этой причине лучше всего обслуживать статические файлы css. Если у вас есть некоторые стили, которые необходимо загрузить из параметров конфигурации и т. Д., Которые не меняются очень часто, первый пример должен хорошо работать для вас.
HTML-файл:
<link rel="stylesheet" type="text/css" href="css.php"/>
Файл css.php:
<?php
header("Content-type: text/css; charset=utf-8");
//your php + css code goes here
?>
Если ваша строка FIRST кода в файле CSS.php отсутствует
header("Content-type: text/css; charset=utf-8");
это не будет работать
Он будет работать, если скрипт includeer не отправит какой-либо вывод, иначе вы получите сообщение « Headers already sent ».
использование ob_start () в включении может быть трюком, чтобы этого избежать, и все работает.
Html-фреймы не имеют никакого отношения к php, а не к конфликту вообще в этом случае.