??//循环删除目录和文件函数 ??删除目录及目录下所有文件 ???public static function ?delDirAndFile( $dirName ) ?{ ???????//var_dump(is_dir($dirName));exit; ???????if ( $handle = opendir( "$dirName" ) ) { ?????????????while ( false !== ( $item = readdir( $handle ) ) ) { ?????????????????if ( $item != "." && $item != ".." ) { ?????????????????????if ( is_dir( "$dirName/$item" ) ) { ??????????????????????????self::delDirAndFile( "$dirName/$item" ); ?//是路径继续递归 ???????????????????} else { ?????????????????????????unlink( "$dirName/$item" );//不是路径删除文件 ?目录/目录下的文件名带后缀 ???????????????????????//if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item<br />\n"; ?????????????????????} ?????????????????} ?????????????} ????????????closedir( $handle ); ???????????rmdir( $dirName ); ??????????//if( rmdir( $dirName ) )echo "成功删除目录: $dirName<br />\n"; ?????????} ?????} ?????//循环目录下的所有文件 ??仅删除指定目录下的文件,不删除目录文件夹 ???public static function delFileUnderDir( $dirName,$now) ?{ ?????????if ( $handle = opendir( "$dirName" ) ) { ????????????while ( false !== ( $item = readdir( $handle ) ) ) { ?????????????????if ( $item != "." && $item != ".." ) { ?????????????????????if ( is_dir( "$dirName/$item" ) ) { ?????????????????????????self::delFileUnderDir( "$dirName/$item" ); ?????????????????????} else { ?????????????????????????preg_match("/\d+/",$item,$matches); ???????????????????????$time=$matches[0]; ???????????????????????$difference=strtotime($now)-strtotime($time); ???????????????????????$days = intval($difference/86400); ???????????????????????$remain = $difference%86400; ???????????????????????$hours = intval($remain/3600); ????????????????????????if($hours>1 || $days>1 ){ ??????????????????????????unlink( "$dirName/$item"); ????????????????????????} ???????????????????????//if( unlink( "$dirName/$item" ) )echo "成功删除文件: $dirName/$item<br />\n"; ?????????????????????} ?????????????????} ????????????} ????????????closedir( $handle ); ?????????} ?????} ?
php删除目录 删除文件保留目录
原文地址:http://www.cnblogs.com/tystudy/p/7473729.html