function ck_rmdir($dir) { $dir = str_replace(array('..', "\n", "\r"), array('', '', ''), $dir); $ret_val = false; if (is_dir($dir)) { $d = @dir($dir); if ($d) { while (false !== ($entry = $d->read())) { if ($entry != '.' && $entry != '..') { $entry = $dir . '/' . $entry; if (is_dir($entry)) { ck_rmdir($entry); } else { @unlink($entry); } } } $d->close(); $ret_val = rmdir($dir); } } else { $ret_val = unlink($dir); } return $ret_val; }
function clear() { $dir = dir($this->_cache_dir); while (false !== ($item = $dir->read())) { if ($item == '.' || $item == '..' || substr($item, 0, 1) == '.') { continue; } $item_path = $this->_cache_dir . '/' . $item; if (is_dir($item_path)) { @ck_rmdir($item_path); } else { _at(unlink, $item_path); } } return true; }