为什么我不能用PHP将CSS样式表写入文件?

时间:2012-11-24 04:32:12

标签: php css fwrite

<?php
    $cdata = $_GET['cdata'];
    $cfile = "./output/$ip/output.css";
    $cout = fopen($cfile, 'w') or die("1");
    fwrite($cout, $cdata) or die("Could not write to " . $cfile);
    echo("Wrote CSS to " . $cfile . " successfully.<br />");
    fclose($cout);
?>

当我在我的网络服务器上执行此操作时,它会告诉我它已成功(或者我没有发现错误),但它会写出我想要的部分内容。这是我告诉它写的内容(通过url传递为$_GET['cdata']):

body{background: #000; color: #FFF;}

这就是我从文件中获取的内容

body{background: 

请注意,最后有一个空格,所以我假设磅(#)导致问题,但不知道为什么或如何修复它。

这不是我的整个代码,只是一个片段,我认为错误在哪里。我希望这是足够的信息,如果不是请问,我会尝试抛出其他任何东西。提前谢谢。

由于我使用jQuery的$ .post()方法来发送数据,所以我需要做的就是用encodeURIComponent()包装正在发送的数据,这似乎已经完成了。谢谢@xbonez指出我正确的方向。

2 个答案:

答案 0 :(得分:4)

您需要对您的网址属性进行编码,网址中的#被视为哈希值而不会被发送到服务器。例如

 var args = 'cdata='+encodeURIComponent('body{background: #000; color: #FFF;}');

答案 1 :(得分:0)

获取请求是从网址获取值。您可能希望base64将它们编码到url中或使用Post变量。例如:隐藏的输入表单类型。