【问题标题】:Php Reload When Document Is Changed文档更改时 PHP 重新加载
【发布时间】:2020-06-08 04:22:27
【问题描述】:

这是我的 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.我不知道如何检测变化,也没有找到任何方法来做到这一点 有人对此有解决方案吗? (其他方法也可以) 附:我对php很糟糕

【问题讨论】:

    标签: php chat real-time


    【解决方案1】:

    PHP 是一种奇怪的方式来做到这一点。老实说,我在 PHP 中看到“实时”聊天的唯一方法是不断刷新,即使这样,用户也无法输入。像这样的事情在 PHP 中是很困难的,因为 PHP 实际上只是生成一个页面供您查看并且它已经完成。使用 javascript 执行此操作会容易得多。您可以让 JS 每 x 秒查看一次文本文件,如果它检测到更改,则刷新页面,甚至更好地更新聊天的 HTML。不会太难:

    Read the contents of a text file every 15 seconds

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

    【讨论】:

    • 好的,我去看看
    • 用Javascript写文件好像不是那么容易,那样的话,用PHP发消息,然后写文件可能更容易,但是很烦人当您想发送消息 (IMO) 时刷新浏览器,但读取文本文件应该没问题。
    【解决方案2】:

    您应该为消息使用数据库,因为每条消息都必须有插入日期。 第一次尝试 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写的普通网站。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-09-04
      • 2012-11-28
      • 1970-01-01
      • 2015-03-29
      • 1970-01-01
      • 2012-11-08
      相关资源
      最近更新 更多