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

标签 php javascript jquery css

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

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

我的目标是让公司可以通过网页界面进行更改,我不希望他们找到 css 代码并更改其值以简化工作。

enter image description here

最佳答案

这个想法听起来不错,但可能需要做一些工作,而且不止一个答案。但这就是我的处理方式。

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

如:

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/

相关文章:

php - 如何使用 jquery 获取 ID 值并将其发送到 PHP 脚本?

javascript - 如何使用 mapbox 样式连接本地 JSON 数据

javascript - javascript中的动画,如何一颗一颗发射子弹?

javascript - JQuery 更改类不起作用

php - 如何在文件上传控件+ jquery上获取上传的文件夹名称

php - 从mysql中显示所有选中的复选框的值并将其显示在表中

javascript - 在javascript中同步两个进程

javascript - 如何在 Angular JS 中一一显示 json 数组中的项目

javascript - 如何制作 2 列投资组合页面,左边是导航,右边是当图像悬停在左侧导航词上时显示的图像

javascript - 检查MySQL是否仍然连接或断开