Как установить переменную на странице PHP, передать ее в файл CSS и назначить ее одному атрибуту CSS? - PullRequest
0 голосов
/ 08 ноября 2011

Во-первых, к вашему сведению: приведенный ниже файл .php будет index.php блога Serindipity, представляющего собой очень сложную путаницу кода и файлов.

В моем файле index.php я хочу извлечь строку запроса, если она существует, из URL-адреса и назначить ее переменной (как в variable = self.location.search ).

Затем я хочу присвоить эту переменную одному атрибуту отдельной записи в файле style.css, который вызывается одним из множества файлов, которые Serindipity использует для создания страницы выходных данных:

body {
font-size: 10pt;
margin: 1;
background-color: #000000;
font-family: verdana, arial, helvetica, sans-serif;
margin-bottom: 30px;
}

Я хочу изменить только параметр background-color одной из многих записей, показанных выше, на значение $ этой переменной (которое будет либо " transparent " или ноль).

В этом процессе мне нужно использовать логический код, чтобы определить, существует ли вообще строка запроса.

Если да, задайте background-color = variable . Если нет, сделайте background-color = "# 000000" .

(Конечно, логика должна выполняться в файле CSS.)

Возможно ли это?

Спасибо!

Ответы [ 4 ]

1 голос
/ 08 ноября 2011

Я не знаком с упомянутым вами движком (Serindipity), но это должно быть довольно просто, если вам разрешено создавать и редактировать свои собственные php-скрипты (которые действительно не должны иметь значения, пока движокне зависит от имени style-sheet):

Измените окончание файла таблицы стилей на

.php

, и веб-сервер распознает его как php-скрипт.Установите mime-type на text / css, как @Brighty wrote

header('Content-type: text/css');

, и пользователь никогда не узнает разницу (за исключением, конечно, окончания файла .php).

Если проблема заключается в таблице стилей с окончанием файла .php, вы всегда можете использовать .htaccess и некоторое умное регулярное выражение, чтобы заставить пользователя поверить, что он видит .css.

Редактировать: Кроме того, если у вас есть доступ к настройке того, какие файлы будут распознаваться как php-скрипты, вы можете настроить сервер так, чтобы он также распознавал .css как php-файл (который, насколько язнаю, не будет проблемой, так как php просто выбросит любой простой текст, встреченный пользователю).

0 голосов
/ 08 ноября 2011

Вы не можете установить какую-либо переменную в файле css, jquery или javascript - лучший вариант для воспроизведения с вашим файлом CSS.

0 голосов
/ 08 ноября 2011

Этого можно достичь, смешав код CSS и php в одном файле с расширением php и установив тип mime для файла 'text / css'.

header('Content-type: text/css');

Я сделал то же самое в ColdFusion, но никогда в php, поэтому не могу гарантировать, что это сработает.

0 голосов
/ 08 ноября 2011

Просто убедитесь, что ваш файл является .php файлом, и вы можете просто использовать в нем PHP следующим образом:

<?php

$colour1 = isset($variable) ? $variable : '#000';

header("Content-Type: text/css");
?>

body {
    background: <?php echo $colour1; ?>
}

div {
    color: <?php echo $colour1; ?>
}

Очевидно, это довольно гибко! Вот ссылка Я нашел расширение метода еще больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...