Example #1
0
 /**
  * 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;
 }
Example #2
0
    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));
    }