Пример #1
0
 public static function backupDownloadFile($pSiteId, $pType, $pUrl, $pFile)
 {
     $dir = dirname($pFile) . '/';
     @mkdir($dir, 0777, true);
     if (!file_exists($dir . 'index.php')) {
         @touch($dir . 'index.php');
     }
     //Clean old backups from our system
     $maxBackups = get_option('mainwp_backupsOnServer');
     if ($maxBackups === false) {
         $maxBackups = 1;
     }
     $dbBackups = array();
     $fullBackups = array();
     if (file_exists($dir) && ($dh = opendir($dir))) {
         while (($file = readdir($dh)) !== false) {
             if ($file != '.' && $file != '..') {
                 $theFile = $dir . $file;
                 if ($pType == 'db' && MainWPUtility::isSQLFile($file)) {
                     $dbBackups[filemtime($theFile) . $file] = $theFile;
                 }
                 if ($pType == 'full' && MainWPUtility::isArchive($file) && !MainWPUtility::isSQLArchive($file)) {
                     $fullBackups[filemtime($theFile) . $file] = $theFile;
                 }
             }
         }
         closedir($dh);
     }
     krsort($dbBackups);
     krsort($fullBackups);
     $cnt = 0;
     foreach ($dbBackups as $key => $dbBackup) {
         $cnt++;
         if ($cnt >= $maxBackups) {
             @unlink($dbBackup);
         }
     }
     $cnt = 0;
     foreach ($fullBackups as $key => $fullBackup) {
         $cnt++;
         if ($cnt >= $maxBackups) {
             @unlink($fullBackup);
         }
     }
     $website = MainWPDB::Instance()->getWebsiteById($pSiteId);
     MainWPUtility::endSession();
     $what = null;
     if ($pType == 'db') {
         MainWPUtility::downloadToFile(MainWPUtility::getGetDataAuthed($website, $pUrl, 'fdl'), $pFile, false, $website->http_user, $website->http_pass);
     }
     if ($pType == 'full') {
         MainWPUtility::downloadToFile(MainWPUtility::getGetDataAuthed($website, $pUrl, 'fdl'), $pFile, false, $website->http_user, $website->http_pass);
     }
     return true;
 }