我目前正在我的网站上显示一个不断修改的txt文件。有没有什么方法可以实时显示对页面上文本文件的修改,这样我就不需要设置页面刷新计时器来查看更改了?我的网站的完整代码可以在这里找到。https://pastebin.com/JauZurS7
if (isset($_GET['enSubmit']) && isset($_GET['uname']) && isset($_GET['rname'])){
echo'<meta http-equiv="refresh" content="10">';
$room=$_GET['rname'];
$uname=$_GET['uname'];
if (!is_dir($room)) mkdir($room);
$files = scandir($room);
foreach ($files as $user){
if ($user=='.' || $user=='..') continue;
$handle=fopen("$room/$user",'r');
$time = fread($handle, filesize("$room/$user"));
fclose($handle);
if ((time()-$time)>1) unlink("$room/$user");
}
$contents='';
$filename="$room.txt";
if (file_exists($filename)){
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
}
$handle = fopen("$room/$uname", "w");
fwrite($handle, time());
fclose($handle);
$files = scandir($room);
$users='';
foreach ($files as $user) if ($user!='.' && $user!='..') $users.=$user."n";
if (isset($_POST['Send'])){
$text=$_POST['txt'];
$contents.="$uname: $text";
$handle = fopen("$filename", "a");
fwrite($handle, "$uname: $textn");
fclose($handle);
}
目前,聊天系统的工作方式是人们发送附加到文本文件中的文本。文本文件已更新,但为了让用户看到其他人的更改,他们必须刷新页面。为了解决这个问题,我设置了一个10秒的刷新计时器,但问题是,当时正在打字的人会被删除他们的工作。我正在考虑使用filemtime来附加txt文件,但我不确定如何做到这一点。
您通常希望使用javascript(更具体地说是Ajax(在页面后台动态加载数据。这将允许您不必刷新页面等。查看和获取/发送内容