如何从输入类型按钮清除服务器端 html 文件的内容


How to clear a server-side html file's content, from input type button

我是PHP的新手。我想使用 (HTML) 输入类型 = 按钮使 HTML 的内容为空。

我搜索了网络,如果我使用fopen(file.html,w+),它将清除文件内容:

"w+"(读/写。打开并清除文件的内容;或者创建一个新文件(如果不存在)"。

来源: http://www.w3schools.com/php/func_filesystem_fopen.asp

我的问题是可能缺少一些代码或语法错误,因为当我按下按钮时没有任何反应。

我真的不知道,在万维网上找不到任何东西,这可能很简单。如果我写错了问题,提前抱歉。

网页代码

<input type="button" name="clearlog" id="clearlog" value="Clearlog" class="btn btn-default">

PHP代码:

<?php
// clear log
if(isset($_POST['clearlog']))
{
    function cleartlog()
    {
        $fp = fopen("log.html", 'w+');
        fwrite($fp, "");
        fclose($fp);            
    }
}
?>

PHP 代码在外部文件中,但在我的index.php中需要它。

PS:使用ftruncate功能更好吗?

来源: http://www.w3schools.com/php/func_filesystem_ftruncate.asp

你在这里试图做的事情远远超出了你目前的理解范围。您没有任何内容将该按钮与任何代码相关联。要么按钮需要成为提交到 php 文件的表单的一部分,要么您需要向其添加一个 javascript 单击事件侦听器,然后向服务器 (php) 发送 ajax 请求以调用您的 php 代码。

表单直接提交到 php 文件(需要页面加载)是一种过时的做法。最好使用 Ajax。

逻辑很简单:

将 JavaScript 单击事件侦听器附加到按钮。
单击函数会将 ajax 请求发送到要运行 php 代码的页面。jQuery不是必需的,但是使用jQuery,ajax调用可以像$.get('foo.php)一样简单。然后foo.php上的任何PHP代码都将被执行。

你应该使用一个将连接到服务器的表单,PHP应该清除log.html文件。

<form action="wipeFileContents.php">
<input type="submit" value="Clear Log File">
</form>

这将是最简单的解决方案,虽然你可以走更难的AJAX方式,理论上更快,但需要你学习javascript。

您可以尝试以下操作:

.HTML

<form action='myfile.php'>
  <input type="submit" value="clear">
</form>

.PHP

if(isset($_POST['clear']))
{
  file_put_contents("log.html", "");
}