好吧,我只是一个编程新手,只是为了过去的爱好而做的。我最近刚刚为了好玩而制作了一个网页编辑器,有人告诉我我这样做的方式(使用 PHP)是一个糟糕的方式。我在制作时也考虑过这一点,在大量数据传输中,这样做是一个坏主意。问题是我想不出其他方法来做到这一点,并且正在寻找有人帮助我改进它,我的意思是我正在使用的保存方法。这是我的代码:
编辑:
<html>
<head>
<title>Web Editor</title>
<link href="controller.css" rel="stylesheet"/>
<script type="text/javascript" src="script/editor.js"></script>
</head>
<body>
<div class="platform">
<div class="head"><div class="file"><p>File: <div id="file">C:\hello.html</div></p></div></div>
<div class="hotbar"><img src="images/save.png" class="hotbarImage" onClick="save()" />
</div>
<div class="editor"><div contenteditable="true" style="height:100%; overflow:scroll;" id="editPad"></div></div>
</div>
</body>
</html>
JS:
function save() {
var dir = document.getElementById("file").innerHTML;
var data = document.getElementById("editPad").innerHTML;
window.location = "save.php?dir="+encodeURIComponent(dir)+"&data="+encodeURIComponent(data);
}
PHP:
<?php
$dir = $_GET['dir'];
$data = $_GET['data'];
$lookFor = array("<", ">","<br>","<%2Fdiv>","<div>","</div>");
$replaceWith = array("<", ">", "", "", "","");
$newData = str_replace($lookFor,$replaceWith,$data);
$f = fopen(urldecode($dir),"w");
fwrite($f,urldecode($newData));
fclose($f);
?>
所有这一切都只是一项正在进行的工作,还需要完成更多工作。但现在,有没有更好的方法来保存正在传输的大量数据的文件。
最佳答案
出于多种原因,您不应使用 GET
请求来存储数据,但最重要的一个原因是:GET
请求的长度有限制。
如果您的内容非常大,则可能无法保存它,因为您的浏览器不会发送 URL 或服务器不会接受它(因为它太长)。
您可以做的是创建一个隐藏表单,填写您需要的字段并使用 JavaScript 提交。确保设置 action="post"
。
关于php - 代码改进,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704239/