通过Web界面对css文件进行永久性更改?

时间:2011-04-11 08:58:45

标签: php javascript jquery css

http://www.vector.safwanmanpower.com/

我正在开发一个网站包,这个网站包将被提供给第三方公司 因此,如果第三方公司想要改变背景颜色,css中的字体面改变这个我创建了一个网页,其中指定了所有这个css属性,并且在文本框中他们将选择背景颜色,字体面值以及此更改应该在css文件中生效提交更改后。

我的目标背后是公司可以通过网页界面进行更改我不希望他们找到css代码并更改其值以使工作变得轻松。

enter image description here

2 个答案:

答案 0 :(得分:1)

这个想法听起来不错,但它可能会有一些工作,超过1个答案。但这就是我接近它的方式。

拥有一个存储当前选择器,属性和值的数据库。

如:

selector | property | value
---------+----------+----------
div      | color    | #FFFFFF
div      | float    | left

等等...

在提交更改的用户上,执行以下操作

1 - 更新数据库中的行,例如,如果我(用户)将div更改为#440044,然后更新该行,使其读取为:

selector | property | value
---------+----------+----------
div      | color    | #440044
div      | float    | left

2 - 使用PHP(或您选择的服务器端语言)拉取数据库的内容,按选择器组织,使用mySQL查询:

$query = 'SELECT * FROM css ORDER BY selector';

3 - 循环遍历这些值,将它们分组为一个数组数组,如下所示:

$css_array = array();
foreach($rows as $row) {
    if( ! array_key_exists($row['selector'], $css_array)) {
        $css_array[$row['selector']] = array();
    }
    // push each value onto the sub array
    $css_array[$row['selector']][] = $row['property'] . ':' . $row['value'];

}

这将为您提供一个数组数组 - 每个子数组代表一个css的元素

array(
    'div' => array(
        'color:#440044',
        'float:left'
    ),
    'h1' => array(
        'font-size:16px'
    )
);

4 - 使用此数组和implode方法,创建一个大型字符串,如:

foreach($css_array as $key => $value) {
    $s .= key . '{';
    $s .= implode(';\n', $value);
    $s .= key . '}';
}

5 - 这应该为您留下一个看起来像普通css表的字符串。使用PHP中的fopen等函数将其写入一个名为style.css或类似文件的文件中。

答案 1 :(得分:0)

你需要一个小小的PHP脚本,假设你添加了php标签,因为这是你选择的语言。

此脚本必须打开相应的css文件,搜索要更改的相关部分,更改它并将更改的文件写入磁盘。您可以使用正则表达式语句查找相关的类和& css文件的属性。