PHP删除文件与文件夹的两种方法
|
有时候我们需要用PHP来删除文件和文件夹,PHP本来也都有函数可以实现,下面简单记录一下代码,方便以后信守拈来。先看一下代码 /** * 删除目录及目录下所有文件或删除指定文件 * @param str $path 待删除目录路径 * @param int $delDir 是否删除目录,1或true删除目录,0或false则只删除文件保留目录(包含子目录) * @return bool 返回删除状态 */ function delDirAndFile($path,$delDir = FALSE) { $handle = opendir($path); if ($handle) { while (false !== ( $item = readdir($handle) )) { if ($item != "." && $item != "..") is_dir("$path/$item") ? delDirAndFile("$path/$item",$delDir) : unlink("$path/$item"); } closedir($handle); if ($delDir) return rmdir($path); }else { if (file_exists($path)) { return unlink($path); } else { return FALSE; } } } 在看一个函数: $dir = '你要删除的目录路径'; //如下: //$dir = $_SERVER['DOCUMENT_ROOT'].'/cache'; rmdirs($dir); //php删除指定目录下的的文件-用PHP怎么删除某目录下指定的一个文件? function rmdirs($dir){ //error_reporting(0); 函数会返回一个状态,我用error_reporting(0)屏蔽掉输出 //rmdir函数会返回一个状态,我用@屏蔽掉输出 $dir_arr = scandir($dir); foreach($dir_arr as $key=>$val){ if($val == '.' || $val == '..'){} else { if(is_dir($dir.'/'.$val)) { if(@rmdir($dir.'/'.$val) == 'true'){} //去掉@您看看 else rmdirs($dir.'/'.$val); } else unlink($dir.'/'.$val); } } } ?> function deldir($dir) { //先删除目录下的文件: $dh=opendir($dir); while ($file=readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$dir."/".$file; if(!is_dir($fullpath)) { unlink($fullpath); } else { deldir($fullpath); } } } closedir($dh); //删除当前文件夹: if(rmdir($dir)) { return true; } else { return false; } } ?> unlink() 函数用于删除文件。若成功,则返回 true,失败则返回 false。rmdir() 函数用于删除空的目录。它尝试删除 dir 所指定的目录。 该目录必须是空的,而且要有相应的权限。 一个实例:删除某个文件夹下的所有".svn"文件夹(包括其内容也要被删除)。 function delsvn($dir) { $dh=opendir($dir); //找出所有".svn" 的文件夹: while ($file=readdir($dh)) { if($file!="." && $file!="..") { $fullpath=$dir."/".$file; if(is_dir($fullpath)) { if($file==".svn"){ delsvndir($fullpath); }else{ delsvn($fullpath); } } } } closedir($dh); } function delsvndir($svndir){ //先删除目录下的文件: $dh=opendir($svndir); while($file=readdir($dh)){ if($file!="."&&$file!=".."){ $fullpath=$svndir."/".$file; if(is_dir($fullpath)){ delsvndir($fullpath); }else{ unlink($fullpath); } } } closedir($dh); //删除目录文件夹 if(rmdir($svndir)){ return true; }else{ return false; } } $dir=dirname(__FILE__); //echo $dir; delsvn($dir); ?> (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
