PHP实现图片自动清理的方法
本文实例讲述了PHP实现图片自动清理的方法。分享给大家供大家参考。具体实现方法如下:
<?php /** *图片清理计划程序,删除文件下两周没有访问的文件 */ $sRootPath=dirname(__FILE__); //define(TIME_LINE,"-7day"); //删除几天没有访问图片的时间 $dir=$sRootPath.DIRECTORY_SEPARATOR.'upload'; $iTimeLine=strtotime("-7day"); //$iTimeLine=time(); $sHandDate=date("Ymd"); $sLogDir=dirname(__FILE__).DIRECTORY_SEPARATOR.'Imglog'; $sLog=$sLogDir.DIRECTORY_SEPARATOR.$sHandDate.'.txt'; if(!file_exists($sLogDir))mkdir($sLogDir,0777,true); _clearFile($dir,$iTimeLine,$sLog); $sEnd='AT'."\\t".date("Y-m-dH:i:s")."\\t".'EXECOVER'."\\n"; echo$sEnd; error_log($sEnd,3,$sLog); /** *清除文件操作,传入需要清除文件的路径 *@paramunknown_type$sPath */ function_clearFile($sPath,$iTimeLine,$sLog){ if(is_dir($sPath)){ $fp=opendir($sPath); while(!false==($fn=readdir($fp))){ if($fn=='.'||$fn=='..')continue; $sFilePath=$sPath.DIRECTORY_SEPARATOR.$fn; _clearFile($sFilePath,$iTimeLine,$sLog); } }else{ if($sPath!='.'&&$sPath!='..'){ //...文件直接跳过,不处理 $iLastView=fileatime($sPath); if($iLastView<$iTimeLine){ if(@unlink($sPath)===true){ //echodate("Y-m-dH:i:s").'成功删除文件'.$sPath; //file_put_contents($sLog,'successdelfile:'.$sPath."\\n",FILE_APPEND); //exit; $str=date("Y-m-dH:i:s")."\\t".'successdelfile:'.'['.$sPath.']'."\\n"; error_log($str,3,$sLog); //exit; } } } } } ?>
希望本文所述对大家的php程序设计有所帮助。