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;
 }