http://www.vector.safwanmanpower.com/
我正在开发一个网站包,这个网站包会交给第三方公司 因此,如果第三方公司想要更改背景颜色、css 中的字体来更改它,我创建了一个网页,其中指定了所有这些 css 属性,并且在文本框中他们将选择背景颜色、字体值,并且此更改应该在 css 文件中生效提交更改后。
我的目标是让公司可以通过网页界面进行更改,我不希望他们找到 css 代码并更改其值以简化工作。
最佳答案
这个想法听起来不错,但可能需要做一些工作,而且不止一个答案。但这就是我的处理方式。
有一个数据库存储当前的选择器、属性和值。
如:
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 或类似文件的文件。
关于php - 通过 Web 界面对 css 文件进行永久更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5618971/