public static function filter($filename) { if ($filename == '.' || $filename == '..') { mydir::$error = '文件(夹)不能命名为.或..!'; return false; } if (preg_match('@[/\\:*?<>|"]+@', $filename)) { mydir::$error = '文件(夹)名称中不能包含/\\:*?<>|"等ANSI字符!'; return false; } return true; }
public static function del($dir) { $arr = scandir($dir); foreach ($arr as $val) { if ($val != '.' && $val != '..') { if (is_dir($val)) { mydir::del($dir . $val . '/'); unlink($dir . $val . '/'); } else { unlink($dir . $val . '/'); } } } }
public final function deldir($dir, $isdel = true) { set_time_limit(6000); echo $dir; if (DIR_MODE) { if (!mydir::del(SITEPATH, $dir, $isdel)) { $this->prompt[] = mydir::$error; } } else { if (!($arr = scandir(SITEPATH . $dir))) { $this->prompt[] = $dir . '文件夹没有读权限!'; } foreach ($arr as $val) { if (is_dir(SITEPATH . $dir . '/' . $val)) { if ($val != '.' && $val != '..' && preg_match('@^[0-9]{4}$@', $val)) { if (!mydir::del(SITEPATH . $dir, '/' . $val, true)) { $this->prompt[] = mydir::$error; } } } else { if (!unlink(SITEPATH . $dir . '/' . $val)) { $this->prompt[] = $dir . '/' . $val . '文件没有写权限!'; } } } if ($isdel) { @rmdir(SITEPATH . $dir); } } }