为什么我不能使用PHP将CSS样式表写入文件?
作者:互联网
<?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);
?>
当我在Web服务器上执行此操作时,它告诉我它是成功的(或者说我没有捕获到错误),但是它写了我想要执行的操作的一部分.这是我告诉它写的内容(通过url作为$_GET [‘cdata’]传递):
body{background: #000; color: #FFF;}
这就是我从文件中得到的
body{background:
请注意,末尾有一个空格,因此我假设英镑(#)引起了问题,但不知道为什么或如何解决.
这不是我的代码的全部,只是一个片段,我认为错误在哪里.我希望这是足够的信息,如果不行,请询问,我将尝试将其他信息扔在那里.提前致谢.
解
由于我使用的是jQuery的$.post()方法发送数据,因此我要做的就是用encodeURIComponent()包装要发送的数据,这似乎已经完成了.感谢@xbonez为我指出正确的方向.
解决方法:
您需要对url属性进行编码,该url中的#被视为哈希值,并且不会发送给服务器.例如
var args = 'cdata='+encodeURIComponent('body{background: #000; color: #FFF;}');
标签:fwrite,css,php 来源: https://codeday.me/bug/20191031/1976982.html