本文实例讲述了PHP实现图片自动清理的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
<?php /** * 图片清理计划程序,删除文件下两周没有访问的文件 */ $sRootPath = dirname( __FILE__ ); //define(TIME_LINE ,"-7 day"); //删除几天没有访问图片的时间 $dir = $sRootPath .DIRECTORY_SEPARATOR. 'upload' ; $iTimeLine = strtotime ( "-7 day" ); //$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-d H:i:s" ). "\\t" . 'EXEC OVER' . "\\n" ; echo $sEnd ; error_log ( $sEnd , 3, $sLog ); /** * 清除文件操作,传入需要清除文件的路径 * @param unknown_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){ //echo date("Y-m-d H:i:s").'成功删除文件'.$sPath; //file_put_contents($sLog,'success del file :'.$sPath."\\n", FILE_APPEND); //exit; $str = date ( "Y-m-d H:i:s" ). "\\t" . 'success del file :' . '[' . $sPath . ']' . "\\n" ; error_log ( $str , 3, $sLog ); //exit; } } } } } ?> |
希望本文所述对大家的php程序设计有所帮助。