一段时间后取消设置会话[如何在一段时间后删除数据]

时间:2012-07-15 22:54:16

标签: php session-timeout unset

我有一个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;

    }
?>

请帮助我......

1 个答案:

答案 0 :(得分:2)

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

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

如果您想清空文件,那很简单 - 您只需使用file_put_contents($file, '');

即可

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

注意

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