gpt4 book ai didi

php - 根据选择器和声明(key => value)从数据库中显示 CSS

转载 作者:可可西里 更新时间:2023-11-01 00:33:05 27 4
gpt4 key购买 nike

我将基本的 CSS 设置存储在数据库中,这样它们就可以由客户端使用某种网络表单进行配置,然后这些可以在 style 标签中回显并覆盖任何现有设置.基本设置,如字体系列、背景颜色、字体颜色等。

表格:

CSS settings stored in table

我决定存储如上所示的设置,而不是为每个 css 选择器设置列名,因为这样更容易更新和维护。

我试图回显“style_name”后跟“{”,然后是每个“style_value”,然后是结束标记“}”。我快到了,但我想弄清楚如何知道何时回显与样式名称关联的所有样式值,然后回显结束标记,而不是在每个值之后回显。

PHP 代码:

$sql = 'SELECT style_name, style_value FROM style ORDER BY style_name';
$results = $stmt->fetchAll(PDO::FETCH_OBJ);

$unique_css = array();

foreach ($results as $css) {
if (!in_array($css->style_name, $unique_css)) {
$unique_css[] = $css->style_name;
echo $css->style_name . " { " . $css->style_value;
} else {
echo $css->style_value;
}
echo '}';
}

返回:

body {
background: #CCC; }
font-family: 'Verdana', sans-serif; }
font-size: 40px; }
text-align:center;
}

h1 {
font-size: 50px;
}

h2 {
font-family: 'Arial', sans-serif;
}

我知道我可以回显每个带有值的样式名称,例如:

body { value1 } body {value2}

但我认为这只是 IMO 的困惑。帮助表示赞赏!

最佳答案

最佳解决方案之一是使用适当的 MySQL 通过使用 GROUP_BY 关键字并使用 GROUP_CONCAT 连接样式值字符串来按样式名称分组:

SELECT style_name, GROUP_CONCAT(style_value SEPARATOR ' ') style_values FROM style GROUP BY style_name

这将导致:

STYLE_NAME  STYLE_VALUES
body background: #CCC; font-family: 'Verdana', sans-serif; font-size: 40px; text-align: center;
h1 font-size: 50px;
h2 font-family: 'Arial', sans-serif;

示例 fiddle :

DEMO

有关 GROUP_BY 和 GROUP_CONCAT 的更多信息:http://dev.mysql.com/doc/refman/5.0/en/group-by-functions.html#function_group-concat

之后,您可以将所有样式以简单的方式组合在一起:

foreach ($results as $css) {
echo $css->style_name . " { " . $css->style_values + " }";
}

关于php - 根据选择器和声明(key => value)从数据库中显示 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18998776/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com