Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php-如何从.html文件中删除条目?_Php_File_Logout - Fatal编程技术网

php-如何从.html文件中删除条目?

php-如何从.html文件中删除条目?,php,file,logout,Php,File,Logout,我有一个文件,online.html。该文件应该存储当前所有在线用户的姓名。该文档可能如下所示: <p>python-b5</p> <p>Other user</p> $fp = fopen("online.html", 'a'); fwrite($fp, "<p>" . $_SESSION ['name'] . "</p>"); fclose($fp); python-b5 其他用户 它们添加了如下代码: <p

我有一个文件,
online.html
。该文件应该存储当前所有在线用户的姓名。该文档可能如下所示:

<p>python-b5</p>
<p>Other user</p>
$fp = fopen("online.html", 'a');
fwrite($fp, "<p>" . $_SESSION ['name'] . "</p>");
fclose($fp);
python-b5

其他用户

它们添加了如下代码:

<p>python-b5</p>
<p>Other user</p>
$fp = fopen("online.html", 'a');
fwrite($fp, "<p>" . $_SESSION ['name'] . "</p>");
fclose($fp);
$fp=fopen(“online.html”,“a”);
fwrite($fp,“”)$\u会话['name']。“

”; fclose($fp);

当用户注销时,我想删除他们用户的
online.html
中的条目。然而,我不知道如何完成它。如何删除条目?

为什么要将用户的联机状态写入静态文件

通常情况下,在用户表中提供某种类型的last_活动时间戳,该时间戳可以在每次请求时更新

然后,您可以说,在过去5-10分钟内具有最后一个_活动时间戳的每个用户都被视为在线用户,否则他就处于离线状态


如果您真的想保持静态文件结构,可以使用php扩展来解析页面中静态文件的DOM,并找到要删除的条目。

使用HTML文件作为数据库的想法将遇到严重问题。 有两个大问题

  • 确保在任何给定时间只有一个进程更新文件。 如果多个进程同时更新该文件,则该文件将损坏或不会记录所有更新

  • 查找要删除的正确行。您需要一种明确标识要删除的行的方法

  • 假设您有某种用户id,您可以将其放入html中

    <!-- BEGIN -->
    <p data-id="1">Promethus</p>
    <p data-id="2">Orpheus</p>
    <p data-id="99">Tantalus</p>
    <p data-id="11895">Marcus</p>
    <!-- END -->
    

    可能重复使用数据库。您只需打开文件流,用
    file\u get\u content
    解析它,然后在其内容上使用例如
    stripos
    找到您正在寻找的用户,并使用“可能重复”问题中的解决方案删除该行。这是一个非常糟糕的主意。您需要锁定文件,然后解析它,将除要删除的行之外的所有内容写回文件。然后打开它。如果您不锁定和解锁,如果两个用户同时登录或退出,您将遇到问题。请确保在写入文件时也将其锁定。PHP可以访问多个数据库,这正是需要正确处理的情况。这是一个非常糟糕的主意。实际上,您正在尝试将数据库重新创建为静态html文件。我强烈建议您查看php提供的一个数据库选项,并使用它。也许最好学习一些简单的东西:PDO(以后也可以用于任何数据库),以及它下面的SQLite(我认为这是最简单的形式。这将允许您添加和删除记录,而无需围绕并发等进行编码。.html文件用作网站中在线用户列表的.html。这就是为什么每个条目中都有颜色定义。