php递归删除文件夹

<pre>

public function deldir($path)

{

//如果是目录则继续

if (is_dir($path)) {

//扫描一个文件夹内的所有文件夹和文件并返回数组

$p = $this->my_scandir($path);


foreach ($p as $val) {


//如果是目录则递归子目录,继续操作

if (is_dir($path . $val)) {

//子目录中操作删除文件夹和文件

$this->deldir($path . $val . '/');

//目录清空后删除空文件夹

@rmdir($path . $val . '/');


} else {

//如果是文件直接删除

unlink($path . $val);

}

}

}

}

public function my_scandir($dir)

{

if (!is_dir($dir)) {

$errmsg = '文件夹不存在';

echo '<script>alert("' . $dir . $errmsg . '")</script>';

echo $dir . $errmsg;

exit();

}

$filearray = array();

$handler = opendir($dir);

while (($filename = readdir($handler)) !== false) {

if ($filename != "." && $filename != "..") {

$filearray[] = $filename;

}}

closedir($handler);

return $filearray;

}

</pre>