php str_replace в файле CSS с использованием пользовательских {тегов}

#php #html #css #str-replace

#php #HTML #css — файл #str-заменить #css

Вопрос:

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

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

 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 не поврежден. Единственная проблема в том, как бы мне также заменить / удалить шестнадцатеричное значение?

Ответ №1:

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

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

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

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

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

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

Ответ №2:

С preg_replace() :

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