我正在构建一个“主题构建器”,它将动态地动态编辑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);

10-07 15:36