使用PHP更改CSS文件中的样式
这就是我的问题:我正在为网站管理员制作一个CSS编辑器,但只针对某些样式。我需要的是一种在CSS文件(样式的标题)中查找单词或短语的方法,然后更改其内容。换句话说,如果我有这个代码:使用PHP更改CSS文件中的样式,php,css,Php,Css,这就是我的问题:我正在为网站管理员制作一个CSS编辑器,但只针对某些样式。我需要的是一种在CSS文件(样式的标题)中查找单词或短语的方法,然后更改其内容。换句话说,如果我有这个代码: .test_style { font-size:12px; color:#ffffff; } 管理员选择样式 测试风格 并写道: font-size:16px; color:#000000; font-weight:bold; margin-top:5px; PHP脚本应找到相应的样式,并将内容更改为: .te
.test_style {
font-size:12px;
color:#ffffff;
}
管理员选择样式
测试风格
并写道:
font-size:16px;
color:#000000;
font-weight:bold;
margin-top:5px;
PHP脚本应找到相应的样式,并将内容更改为:
.test_style {
font-size:16px;
color:#000000;
font-weight:bold;
margin-top:5px;
}
有人知道我该怎么做吗
编辑:我的想法是让管理员从下拉菜单中选择一个选择器,将代码写入文本区域,然后将他们写入该特定样式的代码保存到CSS文件中。如果您相信他们实际上会编写CSS,为什么不将他们可以编辑的样式拉到另一个文件中,并将其导入邮件CSS文件。这样,他们就不会看到所有令人困惑的部分,你也不必担心每次他们进行更改时都会处理文件。如果你相信他们会编写CSS,为什么不直接将他们可以编辑的样式拉到另一个文件中,并将其导入邮件CSS文件中呢。这样他们就看不到所有令人困惑的部分,你也不必担心每次他们做出更改时都会处理文件。@Hawili有一个很好的答案,但你也可以将单独的规则存储在其他地方(平面文件、couchDB存储等)。这里的问题是界面:您希望他们能够添加自己的选择器吗?您希望他们从已经存在的选择器列表中进行选择吗?如果他们正在选择,为什么不让他们也从公共声明列表中选择,或者以参数化方式修改它们
你应该问的真正问题不仅仅是如何实现这个解决方案,而是你应该分析问题,看看这个解决方案是否正确。如果确实如此,您还可以使用正则表达式匹配来查找选择器后面的任何代码,并使用用户的输入修改这些代码。但我建议您以其他更容易修改的方式存储离散数据点,然后将输出保存到css文件。@Hawili有一个很好的答案,但您也可以将单个规则存储在其他地方(平面文件、couchDB存储等)。这里的问题是界面:您希望他们能够添加自己的选择器吗?您希望他们从已经存在的选择器列表中进行选择吗?如果他们正在选择,为什么不让他们也从公共声明列表中选择,或者以参数化方式修改它们
你应该问的真正问题不仅仅是如何实现这个解决方案,而是你应该分析问题,看看这个解决方案是否正确。如果确实如此,您还可以使用正则表达式匹配来查找选择器后面的任何代码,并使用用户的输入修改这些代码。但我建议您以其他更易于修改的方式存储离散数据点,然后将输出保存到css文件中。您可以在本网站上使用相同的想法: 我从以下位置复制了链接:
您所要做的就是使用db将实际css内容存储在文本字段中您可以在此网站上使用相同的想法: 我从以下位置复制了链接:
您所要做的就是使用db将实际css内容存储在文本字段中您可以使用数据库来实现这一点。使用表在mysql中创建一个数据库。为选择器创建一列,为样式设置另一列,使表格看起来像
---------------------------------
| selector | style |
---------------------------------
|.test_style | font-size:12px; |
| | color:#ffffff; |
---------------------------------
您可以
echo
将此数据显示到php文件中。当管理员更改样式时,您可以更新样式字段,将.test\u style
作为键。您可以尝试使用jQuery+AJAX发送和接收数据,避免重新加载表单或页面。您可以使用数据库来完成此操作。使用表在mysql中创建一个数据库。为选择器创建一列,为样式设置另一列,使表格看起来像
---------------------------------
| selector | style |
---------------------------------
|.test_style | font-size:12px; |
| | color:#ffffff; |
---------------------------------
您可以
echo
将此数据显示到php文件中。当管理员更改样式时,您可以更新样式字段,将.test\u style
作为键。您可以尝试使用jQuery+AJAX发送和接收数据,避免重新加载表单或页面。尝试执行以下操作:
<form method="POST" action="admin/settings/css-example">
<textarea id="css-example" name="css-example" rows="10">
<?php $template_file = "../css-example.css";
$file_handle = fopen($template_file, "rb");
echo fread($file_handle, filesize($template_file));
fclose($file_handle);
?>
</textarea>
<div class="form-actions">
<input type="hidden" name="section" value="css-example">
<input type="submit" name="updatesettings" value="Update">
</div>
</form>
尝试这样做:
<form method="POST" action="admin/settings/css-example">
<textarea id="css-example" name="css-example" rows="10">
<?php $template_file = "../css-example.css";
$file_handle = fopen($template_file, "rb");
echo fread($file_handle, filesize($template_file));
fclose($file_handle);
?>
</textarea>
<div class="form-actions">
<input type="hidden" name="section" value="css-example">
<input type="submit" name="updatesettings" value="Update">
</div>
</form>
将css存储在db中,然后在fly上生成css文件问题是——我已经有一个非常大的css文件,很难传输到数据库。我在想一个函数,它可以遍历CSS文件(比如文本文件),找到相应的样式,然后在{和}之间插入代码……如果你按照我在下面答案中发布的链接,你可以创建一个扩展名为.php而不是CSS的文件,但是,除了css内容,您还包括用户可以编辑的部分-是的,只有部分-用户可以编辑,只有这部分可以保存在db中,而所有其他内容都可以直接从文件中编辑,就像它的css一样,所以实际上您只给用户控制变量部分在db中存储css,然后在fly上生成css文件事情是——我已经有一个非常大的css文件,很难传输到数据库。我在想一个函数,它可以遍历CSS文件(比如文本文件),找到相应的样式,然后在{和}之间插入代码……如果你按照我在下面答案中发布的链接,你可以创建一个扩展名为.php而不是CSS的文件,但是,除了css内容,您还包括用户可以编辑的部分-是的,只有部分-用户可以编辑,只有这部分可以保存在db中,而所有其他内容都可以直接从文件中编辑,就好像它的css一样,所以实际上您只让用户控制可变部分。嗯,问题是,我相信他们知道一些基本的css编码,例如更改字体大小、颜色、重量。。。但我想确保他们写的东西,是插入到正确的风格。这也将是一个挑战