如何保存在PHP中生成的html代码?
我使用PHP来产生一些HTML代码如何保存在PHP中生成的html代码?
它是在现在,
<textarea>
<html>
....
</html>
</textarea>
我想要做的就是创建一个按钮“另存为HTML”
当我按下它时,它有一个窗口另存为对话框,允许用户选择要存储的地方,
然后在确认时保存到那个位置(对话框不应该由我创建,使用窗口一个)
工作流程是:首先我在我的服务器上保存一个临时html文件,然后用户打开对话框,(我不需要担心'保存到零件',只需要特定的临时html文件路径),当用户关闭时,我删除临时文件。那么,如何才能实现?谢谢
再次谢谢你。
PHP是在服务器 - 带的东西。一面不要忘记,一旦页面生成编辑,它在客户端上。我认为用javascript来做这种事情更有意义,尽管你也可以将数据发布到一个PHP页面,然后获取数据。
由POST方法“输入”的数据发送给PHP页面:
<form action="savedata.php">
<input id="someElement" name="someElementName" type="textarea" />
<input type="submit" />
</form>
接收它的PHP结束:
# savedata.php
$inputdata = $_POST["someElementName"];
$filename = "somefile.html";
file_put_contents($filename, $inputdata);
然后你可以在PHP中的链接下载文件。
echo "<a href='".$filename."'>Right-click, Save Target As...</a>";
在此之后,你可以删除你的服务器是这样的文件:
unlink($filename);
要打开保存文件对话框 - 重定向到文件,浏览器会打开一个保存文件对话框:
header('Content-type: text/plain');
header('Content-disposition: attachment; filename="$filename"');
要查看该文件的预览,让一个iframe:
echo "<iframe src='$filename' width=600 height=200 frameborder=0 />";
Thx,毕竟我该如何“保存”? – user782104 2012-04-15 10:04:18
@ user782104更新了答案 – Ozzy 2012-04-15 10:07:19
它表示标题的部分('Content-disposition:attachment; filename ='$ filename'');是否对此负责 – 2012-04-15 10:10:40
您不能只将一个<html>
标签放入<textarea>
标签,它不会那样工作。
我建议你使用预先制定的解决方案,如TinyMCE这将为您处理大部分事情。在保存之前,请使用类似HTML Purifier的内容来清理用户输入,因为某人可以保存恶意脚本。
TinyMCE网站有很多关于如何使用它的例子。
我目前正在使用ckeditor,它是相似的事情我相信,有没有任何保存功能提供他们?谢谢 – user782104 2012-04-15 09:55:41
@ user782104:我从来没有使用过ckeditor,但看起来好像是可以的。例如,请参阅:http://goo.gl/4TcWG或http://stackoverflow.com/questions/7777110/can-we-save-ckeditor-data-into-doc-file(并且我没有使用它搜索它很多...) – nico 2012-04-15 10:01:25
你可以使用PHP头功能,这样(假设你的HTML被发布到这个页面:
<?php
header('Content-Disposition: attachment; filename="filename.html"');
echo $_POST['html'];
?>
集这个PHP页面,在该表格的目标,我想你会做
编辑:但你应该注意可能的XSS攻击像达明Pirsy在注释中指出的那样,你总是可以尽管净化输入,不需要的像脚本
虽然这将是XSS攻击者的天堂。让他们在你的服务器上创建任意的html文件...好吧,闻到 – 2012-04-15 09:52:13
你是对的,但是可以利用它并按照他们想要的方式对它进行消毒,比如脱机脚本和所有东西 – 2012-04-15 09:55:05
那么,这将是一个很好的集成回答 – 2012-04-15 09:56:12
一个可能值得关于文件下载注入攻击的文档:https://www.aspectsecurity.com/wp-content/plugins/download-monitor/download.php?id=9 – nico 2012-04-15 12:02:00