我正在构建一个“主题构建器”,它将动态地动态编辑CSS文件。我认为使用PHP是最简单的选择(愿意考虑其他方法)。
我的CSS文件在每个属性后都包含注释,如下所示:
html,body {
background: #fff url(../images/bg.jpg) repeat-x; /*{bgColor}*/
color: #fff; /*{textColor}*/
}
是否可以使用替换功能来搜索该注释并仅替换之前的代码?用户完成主题构建后可能想返回并再次更改某些内容,因此注释必须始终保留。
谢谢
最佳答案
您是在页面加载时生成CSS,还是在添加主题时重新生成CSS文件?
如果您在编辑主题时生成CSS,则可以执行此操作;/*bodybg*/ background: #fff url(../images/bg.jpg) repeat-x; /*/bodybg*/
您可以执行以下操作:
$shortCode = bodybg
$cssContents = preg_replace("/(\/\*".$shortCode."\*\/).*?(\/\*\/".$shortCode."\*\/)/i",
"\\1 background: #F00; \\2",
$cssContents);
如果您在页面加载时生成CSS,则可以执行以下操作:
background: {{bodyBgColor}} url(../images/bg.jpg) repeat-x;
$cssContents = str_replace("{{bodyBgColor}}", $color, $cssContents);