php str_replace в файле CSS с использованием пользовательских {тегов} - PullRequest
1 голос
/ 13 ноября 2011

У меня есть скрипт, который обновляет файл CSS на основе некоторого пользовательского ввода из HTML-формы.

Скрипт выполняет str_replace и ищет в файле CSS «теги».eg-

html,body {
    background: {bgcolor} url(../images/bg.jpg) repeat-x;
    color: {textcolor};
}

Это прекрасно работает, но, очевидно, ломает этот CSS-файл.Изначально это не имело значения, но из-за новых особенностей в моем проекте мне нужно использовать этот CSS-файл.

Так что мне было интересно, есть ли какие-нибудь лучшие альтернативы этому?Я подумал, может быть что-то вроде:

html,body {
    background: #fff /*{textcolor*/ url(../images/bg.jpg) repeat-x;
    color: #fff /*{textcolor*/;
}

Так что я мог бы затем использовать символы комментария внутри тега, что означает, что мой файл CSS не поврежден.Единственная проблема в том, как бы я заменил / удалил и гекс?

Ответы [ 2 ]

2 голосов
/ 13 ноября 2011

Предполагая, что у вас уже есть скрипт, который заменяет теги соответствующими значениями, почему бы не сделать что-то вроде этого:

1: создать файл style.php, который загружает style.css

2: style.php использует уже созданную функцию для замены тегов значениями по умолчанию

3: style.php устанавливает заголовок как header('Content-type: text/css');

4: style.php выводит строку, которая была изменена

Затем, вместо того, чтобы вызывать style.css по всему сценарию, вместо этого вызовите style.php.

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

С preg_replace():

preg_replace("/\3[\w\d]{3,6}\s\/\*\{textcolor\}\*\//", $str_hex_code, $str_css_file)

...