使用php创建自定义css文件

时间:2015-11-18 12:36:29

标签: 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>

1 个答案:

答案 0 :(得分:3)

首先,你会发生一些卷曲的引用,比如“ ”’ ’这会破坏你的代码(可能使用某种类型的Word处理器软件来编码,使用代码编辑器)。

现在,我不会让直接用户输入,而是使用预设。如果他们进入&#34;我不知道尺寸/颜色会怎么样?!&#34; 作为文字? 考虑一下。

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

此外,您不应将连字符用于变量分隔符$background-color。 PHP会看到&#34;背景 MINUS 颜色&#34;。

$font-size也是如此,PHP会将其翻译为&#34; font MINUS size&#34;。改为使用下划线作为分隔符。

我要做的就是使用<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>

选择&#34; Black&#34;和&#34; 10 pt。&#34;从选择中,在USERNAME.css中生成以下内容:

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

您现在的代码(将引号改为常规引号)产生以下内容:

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

这不是有效的CSS。