http://www.vector.safwanmanpower.com/通过Web界面对css文件进行永久更改?
我正在开发一个网站包,这个包的网站将给予第三方公司 因此,如果第三方公司想改变背景颜色,字体脸css来改变这一点,我创建了一个网页,供所有这个css属性被指定,并且在文本框中它们将选择背景颜色,字体值和这些更改应该在提交更改后在css文件中生效。
我的目标背后是这家公司可以通过网页界面进行更改,我不希望他们找到css代码并更改它们的值以使工作变得轻松。
http://www.vector.safwanmanpower.com/通过Web界面对css文件进行永久更改?
我正在开发一个网站包,这个包的网站将给予第三方公司 因此,如果第三方公司想改变背景颜色,字体脸css来改变这一点,我创建了一个网页,供所有这个css属性被指定,并且在文本框中它们将选择背景颜色,字体值和这些更改应该在提交更改后在css文件中生效。
我的目标背后是这家公司可以通过网页界面进行更改,我不希望他们找到css代码并更改它们的值以使工作变得轻松。
这个想法听起来不错,但它可能会有点工作,并超出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或类似文件的文件中。
你需要一点点的PHP脚本,假设你添加了PHP的标签,因为这是你选择的语言。
该脚本将不得不打开相应的css文件,搜索相关部分进行更改,更改并将更改后的文件写入磁盘。您可以使用正则表达式来查找css文件的相关类&属性。
问题是什么? – 2011-04-11 09:00:23
要通过网页永久更改css文件 – 2011-04-11 09:03:16
您的特定问题是什么?到目前为止,你只描述了你的系统,这听起来对我来说确实很好。你到底在问什么? – 2011-04-11 09:04:54