Включайте: css с php расширением файла?

Шаблоны являются проблемой, если они не решение. Этим я имею в виду: если шаблон будет представлен для пользы шаблона а не решить реальную, существующую проблему проектирования в приложении, то это, вероятно, вызовет проблемы, а не решит или предотвратит их.
я продолжаю говорить людям здесь на работе, которую заказывает Банда Четыре (Шаблоны разработки: Элементы Допускающего повторное использование Объектно-ориентированного программного обеспечения), ссылка, не руководство для хорошего дизайна.

14
задан Peter Mortensen 30 November 2019 в 16:00
поделиться

3 ответа

gnarf прибил его.

Я делаю:

<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...
?>
20
ответ дан 1 December 2019 в 06:43
поделиться

Это будет работать, если Сценарий includeder не отправляет никаких выходных данных, иначе вы получите ошибку « Заголовки уже отправлены ».

Использование ob_start () в включающем устройстве может быть уловкой, позволяющей избежать этого и заставить все работать.

Html-фреймы не имеют ничего общего с php-include, поэтому в этом случае никакого конфликта нет.

0
ответ дан 1 December 2019 в 06:43
поделиться

Если у вас есть файл с именем 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 файла просто выведите тег, чтобы включить 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. Если у вас есть несколько стилей, которые необходимо загрузить из параметров конфигурации и т. Д., Которые не очень часто меняются, первый пример должен вам подойти.

15
ответ дан 1 December 2019 в 06:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: