0

这是我遇到的问题:我正在为网站管理员制作一个 CSS 编辑器,但仅限于某些样式。我需要的是一种在 CSS 文件(样式的标题)中查找单词或短语,然后更改其内容的方法。所以,换句话说,如果我有这个代码:

.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;
}

有谁知道我该怎么做?

编辑:我的想法是让管理员从下拉菜单中选择一个选择器,在 textarea 中编写代码,然后将他们编写的代码保存到 CSS 文件中的特定样式中。

4

5 回答 5

2

如果您相信他们无论如何都会实际编写 CSS,为什么不将他们可以编辑的样式拉到另一个文件中,然后将其导入到邮件 CSS 文件中。这样他们就不会看到所有令人困惑的部分,并且您不必担心每次他们进行更改时处理文件。

于 2012-09-10T13:16:59.670 回答
2

您可以在此站点上使用相同的想法:http ://www.barelyfitz.com/projects/csscolor/

我从以下位置复制了链接:Using PHP as a CSS file?

您所要做的就是使用 db 将实际的 css 内容存储在文本字段中

于 2012-09-10T13:21:36.070 回答
1

@Hawili 有一个很好的答案,但您也可以将各个规则存储在其他地方(平面文件、couchDB 存储等)。这里的问题是界面:您是否希望他们能够添加自己的选择器?您是否希望他们从已经存在的选择器列表中进行选择?如果他们正在选择,为什么不让他们也从常见声明列表中进行选择,或者对它们进行参数化修改?

您应该问的真正问题不仅仅是如何实施此解决方案,而是您应该分析问题并查看此解决方案是否正确。如果确实如此,您还可以使用正则表达式匹配来查找选择器之后的任何代码,并根据用户的输入对其进行修改。但我建议您以更容易修改的其他方式存储离散数据点,然后将该输出保存到您的 css 文件中。

于 2012-09-10T13:21:30.410 回答
1

您可以使用数据库执行此操作。用表创建一个数据库mysql。为选择器制作一列,为样式制作另一列,使表格看起来像;

---------------------------------
| selector   | style            |
---------------------------------
|.test_style | font-size:12px;  |
|            | color:#ffffff;   |
---------------------------------

您可以echo将此数据显示到您的 php 文件中。当管理员更改样式时,您可以更新样式字段,查找.test_style作为键。您可以尝试使用 jQuery + AJAX 来发送和接收数据,避免表单或页面重新加载。

于 2012-09-10T13:24:17.417 回答
0

尝试做这样的事情:

  <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>
于 2012-09-10T13:32:22.027 回答