如何使用php和mysql来动态设计网站样式?

lmvvr0a8  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(402)

我正在寻找一种方法来使用一个数据库表样式的网站的一部分。我想要这个,因为我有多个网站,我想一个简单的方式来样式默认部分容易。
例子:
我有一个 tbl_settings 它包含“设置\ id、站点\ id、标签、键、值”列。例如,键可以是“footer\u bg”,值将是“ff3300”。
如何使用php将值发送到css/sass?也许创建一个并不存在的url并将css回送到其中?就像ajax一样。
任何想法,我真的不知道。。。?

roqulrg3

roqulrg31#

嗯,我觉得这个设计不太好用。不管用什么方法编写,最终都会在数据库中产生大量的查询负载。想象一下,为放入html的每个类,为应用程序的每个用户启动查询。
我将采用一种更“温和”的动态样式,创建一些“模板”css,将它们的路径存储到db中,并将它们动态加载到页面中。

5f0d552i

5f0d552i2#

问题是你可以链接一个php文件作为css,但是在更新值和存储值之间有一些问题,但是你可以解决这个问题。您可以像这样将php文件链接为css。

<link rel="stylesheet" href="css/dynamic.php" media="screen">

你需要设置这个文件的头。 css/dynamic.php :

<?php
/**set header**/
header("Content-type: text/css");
?>

在那之后你几乎可以 echo 任何你想要的css规则。您可以在该文件中执行查询。
但这不能解决浏览器历史问题,只要文件名是相同的,如果浏览器历史中有一个副本,它将是一个网站使用的。为了修复这个问题,你可以给你的规则集一些唯一的随机标识符。当您更改该标识符下的任何规则时,可以使用新的标识符更新该标识符。你手上拿的是什么。不知道如何设置在html链接中使用该标识符并将其作为参数传递。

<!-- 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 你也可以处理浏览器的历史。
如果我错了,我很乐意改正。

相关问题