日期:2014-05-17  浏览次数:20450 次

帮忙看下代码是否正确,删除一个月前的数据和文件。
理论上代码是正确的,但是怕个万一……
文件、数据删错了就不好玩了……
高手们,帮忙看下下面的代码正确与否?

PHP code

require (dirname(__FILE__) . "/../conn.php");
mysql_select_db("news",$conn_database);
mysql_query("delete from web_news where news_date<(date(now())-60*60*24*30)");
mysql_close($conn_database);
if ($handle = opendir(dirname(__FILE__).'/../cache/')) {
  while (false !== ($file = readdir($handle))) {
      if ((time()-filectime(dirname(__FILE__).'/../cache/'.$file)) < 60*60*24*30) {
         if (strripos($file, '.html') !== false) {
          unlink(dirname(__FILE__).'/../cache/'.$file);
        }
      }
  }
}



------解决方案--------------------
filectime
应改为
filemtime

你可以注释掉 unlink(dirname(__FILE__).'/../cache/'.$file);
改为
$fn = dirname(__FILE__).'/../cache/'.$file;
echo $fn . ' - ' . filemtime($fn);
先查看一下
------解决方案--------------------
忽略了,没注意还有数据库的
(date(now())-60*60*24*30)
改为
DATE_SUB(now(),INTERVAL 30 DAY)

同样已是先 select 确认一下