Php 文档更改时重新加载

Php Reload When Document Is Changed

这是我的 php 代码,我正在尝试创建聊天

<!DOCTYPE html>
<html>
<body>
<html>
<?php
session_start();
$userinput = $_GET["name"];
if (empty($userinput)){

} else {
    $myfile = fopen("chat.txt", "a");
    fwrite($myfile, $userinput);
    fwrite($myfile, "<br>
");
}

$chatfile = fopen("chat.txt", "r");
echo fread($chatfile,filesize("chat.txt"));
echo $chatfile;
?> 

</body>
</html>

<form method="get" id="myForm" action="">
<input type="text" name="name"
placeholder="type in your comment" autofocus>
<input type="submit">
</form>

<script>
</script>
</body>
</html>

我知道 php 不是正确的选择,但我想找点乐子,这似乎很有效。 另外,我想问一下你们如何让聊天实时化。 我创建了一个名为 chat.txt 的文档,也许我可以检测到它何时更改,然后重新加载。 这种方法有两个问题。 1.每次重新加载后,您之前输入的消息都会再次输入 2.I 不知道如何检测变化,也没有找到任何方法来做到这一点 有人对此有解决方案吗? (其他方法也行) P.S。我在 php

时很糟糕

PHP 是一种奇怪的方法。老实说,我在 PHP 中看到 "live" 聊天的唯一方法是不断刷新,即使这样,用户也无法输入。这样的事情在 PHP 中很难做到,因为 PHP 实际上只是生成一个页面供您查看,然后就完成了。如果使用 javascript,这样做会容易得多。您可以让 JS 每 x 秒查看一次文本文件,如果它检测到更改,则刷新页面,或者更好的是,更新聊天的 HTML。不会太难:

Read the contents of a text file every 15 seconds

您只需要找到一种方法(可能在 javascript 中),以便在您按下按钮时将内容写入文件。这样,其他客户端就可以收到您的消息,并且您无需在每次发送消息时都刷新页面。当然,这只适用于本地机器上的文本文件。

您应该为消息使用数据库,因为每条消息都必须有插入日期。 第一次尝试 sqlite php.net/manual/en/sqlite3.installation.php 在其他(坏)方式中,您可以在新文件中添加每条消息,每个文件都有日期时间创建标记。 要仅获取聊天更新,更好的方法(也是 php 的唯一方法)是使用 javascript。 jQuery 库是最好的开始,聊天是开始使用它们的好习惯。 https://www.w3schools.com/jquery/jquery_get_started.asp 您不能仅通过 php 获取更新,因为 php 完全显示所有页面并且无法仅更新 html 页面的一部分,但 javascript 可以。 没有js的只写php没有正常站点