使用php创建自定义css文件


Create custom css file using php

我正试图找到一种用php创建自定义css文件的方法。

我的目标是用户可以为我的网站创建自己的外观。我认为用户会填写一个表格,然后使用fopen、fwrite和fclose。这就是我的想法。

我是PHP的新手,所以我不确定这是否是一条路。如果你能给我一些反馈,我将不胜感激。也许你知道更好的方法?

<?php
if(isset($_POST['submit'])){
  $background_color = "background-color:".$_POST['background-color'];
  $font_size = "font-size:".$_POST['font-size'].";";
  $content = "body{".$background_color.$font_size."}";
  $file = fopen("USERNAME.css","w");
  fwrite($file,$content);
  fclose($file);
};
?>
<form method="post">
  background-color: <input type="text" name="background-color"><br>
  font-size: <input type="text" name="font-size"><br>
  <input type="submit" value="Submit">
</form>

首先,出现了一些花引号,如“ ”’ ’,这将破坏代码(可能使用某种类型的Word处理器软件进行编码,请使用代码编辑器)。

现在,我不允许用户直接输入,而是使用预设。如果他们输入"我不知道尺寸/颜色?!"作为文本怎么办想想。

另外,您的第一个条件语句将永远不会发生,因为输入没有与之匹配的名称属性

此外,对于变量分隔符$background-color,不应使用连字符。PHP会将其视为"背景MINUS颜色"。

$font-size也是如此,PHP将其翻译为"fontMINUSsize"。请改用下划线作为分隔符。

在您的位置上,我要做的是使用<select>中的预设,这就是我在下面使用的示例。您也可以使用单选按钮;选择权在你。

我在这行代码中还发现了另一个错误,它不会在第一个CSS声明的末尾添加分号:

$background-color = "background-color:".$_POST['background-color'];

它需要一个额外的分号(和一个空格,不是关键的):

$background_color = "background-color:".$_POST['background-color']. "; ";

这里有一个你可以使用的重写,我可能会添加一些作品。

<?php 
if(isset($_POST['submit'])){
  $background_color = "background-color:".$_POST['background-color']. "; ";
  $font_size = "font-size:".$_POST['font-size'].";";
  $content = "body{".$background_color.$font_size."}";
  $file = fopen("USERNAME.css","w");
  fwrite($file,$content);
  fclose($file);
};
// The semi-colon after your closing brace can be safely omitted.
?>
<form method="post">
<select name="background-color">
    <option value="red">Red</option>
    <option value="green">Green</option>
    <option value="blue">Blue</option>
    <option value="#000000">Black</option>
</select>
Font size:
<select name="font-size">
    <option value="10pt">10 pt.</option>
    <option value="12pt">12 pt.</option>
    <option value="14pt">14 pt.</option>
</select>
  <input type="submit" value="Submit" name="submit">
</form>

从选择中选择"黑色"answers"10磅"后,在USERNAME.css中生成以下内容:

body{background-color:#000000; font-size:10pt;}

您当前的代码(将花引号改为常规引号)生成了以下内容:

body{background-color:greenfont-size:5;}

这将不是有效的CSS。