2012-07-15 69 views
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; 

    } 
?> 

請幫我...

+0

可能您需要使用Cron Jobs – 2012-07-15 22:58:30

回答

2

最好的解決方法是使用一個cron。您可以執行清理PHP腳本每隔X分鐘,像這樣:

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

如果要清空文件,很簡單 - 你可以只使用file_put_contents($file, '');

如果要刪除特定郵件您需要在每行的開頭添加一個時間戳(您可以在輸出聊天時將其刪除),並在清理腳本中解析它。

注意

您可以獲取路徑通過在命令行上運行which php到PHP。

+0

請給我代碼如何讓我的cron – IamRobin 2012-07-15 23:04:33

+0

我給你cron的代碼(30分鐘的方式..我也鏈接了文檔),編輯您的終端中您的cron作業列表中鍵入'crontab -e'。假設你正在運行一個基於nix的操作系統 - 如果你使用的是Windows(上帝禁止),那麼你可以使用'scheduled events'。 – Martin 2012-07-15 23:05:58

+0

親愛的主席先生我不是一個PHP程序員請在uper代碼中解釋我添加你的代碼和哪個名字* .php文件我做了什麼,我把這個文件放在* .html文件和這個腳本中的聊天輸出在一個根目錄中只包含三個文件(index.php,msg.html和message.php),例如:example.com/chat/ – IamRobin 2012-07-15 23:13:34