/** * deletes a directory recursively * Bf_Filesystem::deleteRecursive(JPATH_ROOT .'/tmp', TRUE); * * @param string $target * @param bool $ignoreWarnings * @param array $msg * * @return bool */ static function deleteRecursive($target, $ignoreWarnings = FALSE, $msg = array()) { $exceptions = array('.', '..'); if (!($sourceDir = @opendir($target))) { if ($ignoreWarnings !== TRUE) { $msg['result'] = 'failure'; $msg['errors'][] = $target; return $msg; } } if (!$sourceDir) { return; } while (FALSE !== ($sibling = readdir($sourceDir))) { if (!in_array($sibling, $exceptions)) { $object = str_replace('//', '/', $target . '/' . $sibling); if (is_dir($object)) { $msg = Bf_Filesystem::deleteRecursive($object, $ignoreWarnings, $msg); } if (is_file($object)) { bfLog::log('Deleting ' . $object); $result = unlink($object); if ($result) { $msg['deleted_files'][] = $object; } if (!$result) { $msg['errors'][] = $object; } } } } closedir($sourceDir); if (is_dir($target)) { bfLog::log('Deleting ' . $target); if ($result = rmdir($target)) { $msg['deleted_folders'][] = $target; $msg['result'] = 'success'; } else { bfLog::log(sprintf('Deleting %S FAILED', $target)); $msg['result'] = 'failure'; } } else { } return $msg; }
private function clearTmpFiles() { require 'bfFilesystem.php'; $filesAndFolders = Bf_Filesystem::readDirectory(JPATH_ROOT . '/tmp', '.', true); foreach ($filesAndFolders as $pointer) { $pointer = JPATH_ROOT . '/tmp/' . $pointer; if (is_dir($pointer)) { bfLog::log('Deleting ' . $pointer); Bf_Filesystem::deleteRecursive($pointer, TRUE); } else { bfLog::log('Deleting ' . $pointer); unlink($pointer); } } file_put_contents(JPATH_ROOT . '/tmp/index.html', '<html><body bgcolor="#FFFFFF"></body></html> '); $sql = 'DELETE FROM bf_files WHERE filewithpath LIKE "/tmp%" AND filewithpath != "/tmp/index.html"'; $this->_db->setQuery($sql); $this->_db->query(); bfEncrypt::reply('success', array('res' => TRUE)); }