我创建了一个小模块,允许用户在进入网页时添加小消息。为此,它将它们写到一个 html 文档 (msg.html) 中,然后在页面中我将其包含()到一个 div 中。
我最大的问题是我不知道如何制作结果文件,即使用 include() 显示的文件,以显示最新的文件,依此类推...我尝试更改 fopen 属性(a,r, b、c、cb+、etccccc),但没有稳定的。
对于我的看法,我应该让 php 表单写入文件,始终在最上面一行附加,因此 include() 将正常显示文件,最新的作为第一个。
或者,我可以制作某种反转数组并包含()或回显“反转”内容。无论哪种方式,我只是没有知识来实现这一点。
这是我的代码:
<?php
if (isset($_POST['msg'])) {
$usr = preg_replace('/[^a-zA-Z0-9]/', '',$_POST['usr']);
$msg = $_POST['msg'];
if (empty($usr)) {
$usr = "Anonymous";
}
if (!empty($msg)) {
$fsp = fopen('msg.html', "ab+");
fwrite($fsp, '<tr><td class="info"><span class="usr">'. $usr .'</span><br><span class="dat">'. date("F j, Y, H:i ") .'</span></td><td>'. $msg ."</td></tr>\n");
fclose($fsp);
unset($_POST['msg']);
unset($_POST['usr']);
}
}
?>
<form method="post" action="#">
<div id="comments">
<h3>Messages</h3>
<table>
<tr><td>Name:</td><td><input type="text" id="usr" name="usr"></td></tr>
<tr><td>Message:</td><td><textarea id="msg" name="msg"></textarea></td></tr>
<tr><td></td><td><input type="submit" value="Add message!"></td></tr>
</table>
</table>
<table id="ccc">
<?php include('msg.html'); ?>
</table>
</div>
</form>