public function unload() { if (!$this->allow) { return; } $files = w(); if ($a = func_get_args()) { foreach ($a as $row) { if (!f($row)) { continue; } $files[] = $this->encrypt($row); } } else { $files = _dirlist($this->folder, '^([a-z0-9]+)$', 'files'); } foreach ($files as $row) { $row = $this->folder . $row; if (@file_exists($row)) { @unlink($row); } } return false; }
function _dirlist($d, $filter = false, $sd = false) { if (substr($d, -1) != '/') { $d .= '/'; } if (!($fp = @opendir($d))) { return false; } $r = w(); while (false !== ($f = @readdir($fp))) { if ($f == '.' || $f == '..') { continue; } if (is_dir($d . $f)) { if ($sd === 'files') { continue; } $r[$f] = _dirlist($d . $f . '/', $filter . $sd); } else { if ($sd === 'dir' || $filter !== false && !preg_match('#' . $filter . '#', trim($f))) { continue; } $r[] = $f; } } @closedir($fp); if (count($r)) { array_multisort($r); } return $r; }