我正在寻找一种方法来使用一个数据库表样式的网站的一部分。我想要这个,因为我有多个网站,我想一个简单的方式来样式默认部分容易。例子:我有一个 tbl_settings 它包含“设置\ id、站点\ id、标签、键、值”列。例如,键可以是“footer\u bg”,值将是“ff3300”。如何使用php将值发送到css/sass?也许创建一个并不存在的url并将css回送到其中?就像ajax一样。任何想法,我真的不知道。。。?
tbl_settings
roqulrg31#
嗯,我觉得这个设计不太好用。不管用什么方法编写,最终都会在数据库中产生大量的查询负载。想象一下,为放入html的每个类,为应用程序的每个用户启动查询。我将采用一种更“温和”的动态样式,创建一些“模板”css,将它们的路径存储到db中,并将它们动态加载到页面中。
5f0d552i2#
问题是你可以链接一个php文件作为css,但是在更新值和存储值之间有一些问题,但是你可以解决这个问题。您可以像这样将php文件链接为css。
<link rel="stylesheet" href="css/dynamic.php" media="screen">
你需要设置这个文件的头。 css/dynamic.php :
css/dynamic.php
<?php /**set header**/ header("Content-type: text/css"); ?>
在那之后你几乎可以 echo 任何你想要的css规则。您可以在该文件中执行查询。但这不能解决浏览器历史问题,只要文件名是相同的,如果浏览器历史中有一个副本,它将是一个网站使用的。为了修复这个问题,你可以给你的规则集一些唯一的随机标识符。当您更改该标识符下的任何规则时,可以使用新的标识符更新该标识符。你手上拿的是什么。不知道如何设置在html链接中使用该标识符并将其作为参数传递。
echo
<!-- I assume that identifier stored in '$id' --> <link rel="stylesheet" href="css/dynamic.php?somekey=<?=$id?>" media="screen">
然后才能访问文件中的更新值
<?php /**set header**/ header("Content-type: text/css"); /*Dont forget to escape this before passing it in to sql*/ $id = $_GET["somekey"]; ?>
如果你处理你的 css 你也可以处理浏览器的历史。如果我错了,我很乐意改正。
css
2条答案
按热度按时间roqulrg31#
嗯,我觉得这个设计不太好用。不管用什么方法编写,最终都会在数据库中产生大量的查询负载。想象一下,为放入html的每个类,为应用程序的每个用户启动查询。
我将采用一种更“温和”的动态样式,创建一些“模板”css,将它们的路径存储到db中,并将它们动态加载到页面中。
5f0d552i2#
问题是你可以链接一个php文件作为css,但是在更新值和存储值之间有一些问题,但是你可以解决这个问题。您可以像这样将php文件链接为css。
你需要设置这个文件的头。
css/dynamic.php
:在那之后你几乎可以
echo
任何你想要的css规则。您可以在该文件中执行查询。但这不能解决浏览器历史问题,只要文件名是相同的,如果浏览器历史中有一个副本,它将是一个网站使用的。为了修复这个问题,你可以给你的规则集一些唯一的随机标识符。当您更改该标识符下的任何规则时,可以使用新的标识符更新该标识符。你手上拿的是什么。不知道如何设置在html链接中使用该标识符并将其作为参数传递。
然后才能访问文件中的更新值
如果你处理你的
css
你也可以处理浏览器的历史。如果我错了,我很乐意改正。