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 に答える