理论上代码是正确的,但是怕个万一……
文件、数据删错了就不好玩了……
高手们,帮忙看下下面的代码正确与否?
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);
}
  }
  }
}

解决方案 »

  1.   

    filectime
    应改为
    filemtime你可以注释掉 unlink(dirname(__FILE__).'/../cache/'.$file);
    改为
    $fn = dirname(__FILE__).'/../cache/'.$file;
    echo $fn . ' - ' . filemtime($fn);
    先查看一下
      

  2.   

    谢谢斑竹,
    刚试了,查看了一下文件没问题
    但是数据库删除没作用。直接在PHPMYADMIN里:
    delete from web_news where news_date<(date(now())-60*60*24*30)显示
    Deleted rows: 0 (Query took 0.1939 sec)news_date  int(11)。肯定有记录超过一个月的,最老的记录是3个月前的。
      

  3.   

    忽略了,没注意还有数据库的
    (date(now())-60*60*24*30)
    改为
    DATE_SUB(now(),INTERVAL 30 DAY)同样已是先 select 确认一下