0

我有一个简单的 php 聊天脚本,它没有数据库,它工作正常。但它会在msg.html文件中创建并存储所有聊天记录,我想在一段时间后删除这些聊天记录。如何在大约 30 分钟后删除这些聊天。

PHP代码在下面

<?php 
    if (isset($_GET['msg'])){
        if (file_exists('msg.html')) {
           $f = fopen('msg.html',"a+");
        } else {
           $f = fopen('msg.html',"w+");
        }
      $nick = isset($_GET['nick']) ? $_GET['nick'] : "Hidden";
      $msg  = isset($_GET['msg']) ? htmlspecialchars($_GET['msg']) : ".";
      $line = "<p><span class=\"name\">$nick: </span><span class=\"txt\">$msg</span></p>";
        fwrite($f,$line."\r\n");
        fclose($f);

        echo $line;

    } else if (isset($_GET['all'])) {
       $flag = file('msg.html');
       $content = "";
       foreach ($flag as $value) {
        $content .= $value;
       }
       echo $content;

    }
?>

请帮我...

4

1 回答 1

2

最好的解决方案是使用cron. 您可以每 X 分钟执行一次清理 PHP 脚本,如下所示:

0,30 * * * * /path/to/php /path/to/cleanup_script.php

如果你想清空文件,这很简单——你可以使用file_put_contents($file, '');

如果要删除特定消息,则需要在每行的开头添加时间戳(您可以在输出聊天时将其删除)并在清理脚本中对其进行解析。

笔记

which php您可以通过在命令行上运行来获取 php 的路径。

于 2012-07-15T23:00:09.830 回答