2011-04-11 99 views
1

http://www.vector.safwanmanpower.com/通过Web界面对css文件进行永久更改?

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

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

enter image description here

+3

问题是什么? – 2011-04-11 09:00:23

+0

要通过网页永久更改css文件 – 2011-04-11 09:03:16

+0

您的特定问题是什么?到目前为止,你只描述了你的系统,这听起来对我来说确实很好。你到底在问什么? – 2011-04-11 09:04:54

回答

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的元件的每个子阵列 - 利用这种阵列和内爆法,建立一个庞大的字符串,如:

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

5 - 这应该离开你看起来像一个正常的CSS表的字符串。使用PHP中的fopen等函数将其写入一个名为style.css或类似文件的文件中。

0

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

该脚本将不得不打开相应的css文件,搜索相关部分进行更改,更改并将更改后的文件写入磁盘。您可以使用正则表达式来查找css文件的相关类&属性。