Ejemplo n.º 1
3
function zipData($source, $destination)
{
    if (extension_loaded('zip')) {
        if (file_exists($source)) {
            $zip = new ZipArchive();
            if ($zip->open($destination, ZIPARCHIVE::CREATE)) {
                $source = realpath($source);
                if (is_dir($source)) {
                    $iterator = new RecursiveDirectoryIterator($source);
                    // skip dot files while iterating
                    $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
                    $files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
                    foreach ($files as $file) {
                        $file = realpath($file);
                        if (is_dir($file)) {
                            $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
                        } else {
                            if (is_file($file)) {
                                $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
                            }
                        }
                    }
                } else {
                    if (is_file($source)) {
                        $zip->addFromString(basename($source), file_get_contents($source));
                    }
                }
            }
            echo $destination . ' zip: successfully...';
            echo "\n";
            return $zip->close();
        }
    }
    return false;
}
Ejemplo n.º 2
0
    public function listPosts()
    {
        $path = null;
        $timestamp = null;
        $dirname = $this->settings->posts_dir;
        $dir = new \RecursiveDirectoryIterator($dirname);
        $dir->setFlags(\RecursiveDirectoryIterator::SKIP_DOTS);
        ob_start();
        ?>
        <div class="row">
            <table class="post-table">
                <tr>
                    <th>Name</th>
                    <th>Date created</th>
                </tr>
                
        <?php 
        foreach ($dir as $fileinfo) {
            if ($fileinfo->getMTime() > $timestamp) {
                // current file has been modified more recently
                // than any other file we've checked until now
                $path = $fileinfo->getFilename();
                $modified = $fileinfo->getMTime();
                $created = $fileinfo->getCTime();
                $linkUrl = preg_replace('/\\.[^.\\s]{1,4}$/', '', $path);
                echo "<tr><td><a href='?action=edit&post=" . $linkUrl . "'>" . $path . "</a></td>";
                echo "<td>" . date("F d Y H:i:s.", $created) . "</td></tr>";
            }
        }
        ?>
            </table>
        </div>

<style>
    .post-table {
        width: 80%;
        margin: 50px auto;
        text-align: center;
        border: solid 1px #ddd;
    }
    .post-table th {
        font-weight: bold;
        
    }
    .post-table th,
    .post-table td {
        text-align: left;
        padding: 5px;
        border: solid 1px #ddd;
    }

</style>



        <?php 
        return ob_get_clean();
    }
Ejemplo n.º 3
0
function routesInDirectory($app = '')
{
    $routeDir = app_path('Http/Routes/' . $app . ($app !== '' ? '/' : NULL));
    $iterator = new RecursiveDirectoryIterator($routeDir);
    $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
    foreach ($iterator as $route) {
        $isDotFile = strpos($route->getFilename(), '.') === 0;
        if (!$isDotFile && !$route->isDir()) {
            require $routeDir . $route->getFilename();
        }
    }
}
 /**
  * Retrieves old CSS files and list them
  *
  * @param $ttl int
  * @return array
  */
 protected function getOutdatedFiles($ttl)
 {
     $outdated = array();
     $time = time();
     $dir = new RecursiveDirectoryIterator($this->configuration->getUploadDir());
     $dir->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
     /*
      * Collecting CSS files
      */
     $files = new RegexIterator(new RecursiveIteratorIterator($dir), '#.css#U', RecursiveRegexIterator::ALL_MATCHES);
     /*
      * Checking expiry
      */
     foreach ($files as $filepath => $match) {
         filemtime($filepath) + $ttl < $time ? array_push($outdated, $filepath) : null;
     }
     return $outdated;
 }
Ejemplo n.º 5
0
 public function zipData($source, $destination)
 {
     global $Language;
     $archiveName = 'backup-' . time() . '.zip';
     // Archive name
     if (extension_loaded('zip')) {
         if (file_exists($source)) {
             $zip = new ZipArchive();
             if ($zip->open($destination, ZIPARCHIVE::CREATE)) {
                 $source = realpath($source);
                 if (is_dir($source)) {
                     $iterator = new RecursiveDirectoryIterator($source);
                     // skip dot files while iterating
                     $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
                     $files = new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST);
                     foreach ($files as $file) {
                         $file = realpath($file);
                         if (is_dir($file)) {
                             $zip->addEmptyDir(str_replace($source . '/', '', $file . '/'));
                         } else {
                             if (is_file($file)) {
                                 $zip->addFromString(str_replace($source . '/', '', $file), file_get_contents($file));
                             }
                         }
                     }
                 } else {
                     if (is_file($source)) {
                         $zip->addFromString(basename($source), file_get_contents($source));
                     }
                 }
             }
             if (!$zip->close()) {
                 Alert::set($Language->get("There was a problem writing the ZIP archive."));
                 Redirect::page('admin', 'configure-plugin/pluginBackup');
             } else {
                 Alert::set($Language->get("Successfully created the ZIP Archive!"));
                 Redirect::page('admin', 'configure-plugin/pluginBackup');
             }
             // close the zip file
             $zip->close();
         }
     }
     return false;
 }
Ejemplo n.º 6
0
 /**
  * @param string $dir
  * @return FileIndex
  */
 public static function make($dir)
 {
     $dirIterator = new \RecursiveDirectoryIterator($dir);
     $dirIterator->setFlags(\RecursiveDirectoryIterator::SKIP_DOTS);
     $recursiveIterator = new \RecursiveIteratorIterator($dirIterator, \RecursiveIteratorIterator::SELF_FIRST);
     $results = array();
     foreach ($recursiveIterator as $file) {
         /** @var \SplFileInfo $file */
         // ignore non files
         if (!$file->isFile()) {
             continue;
         }
         // ignore non php files
         $ext = strtolower($file->getExtension());
         if ($ext !== 'php') {
             continue;
         }
         $results[] = $file->getPathname();
     }
     return new self($results);
 }
Ejemplo n.º 7
0
 public function cmd_artifact(array $params = array())
 {
     \System\Directory::check(BASE_DIR . static::DIR_PACKAGES);
     $target = BASE_DIR . static::DIR_PACKAGES . '/artifact.tar';
     $result = $target . '.gz';
     if (isset($params[0])) {
         $target = $params[0];
     }
     if (file_exists($target)) {
         unlink($target);
     }
     if (file_exists($result)) {
         unlink($result);
     }
     $iter = new \RecursiveDirectoryIterator(BASE_DIR);
     $iter->setFlags(\FileSystemIterator::SKIP_DOTS);
     $iter = new ProjectDirectoryRecursiveIterator($iter);
     $iter = new \RecursiveIteratorIterator($iter);
     $archive = new \PharData($target);
     $archive->buildFromIterator($iter, BASE_DIR);
     $archive->compress(\Phar::GZ);
     unlink($target);
 }
Ejemplo n.º 8
0
<!DOCTYPE HTML>
<html>
<head>
<meta  charset="utf-8">
<title>RecursiveDirectoryIterator</title>
</head>

<body>
<pre>
<?php 
$files = new RecursiveDirectoryIterator('../images');
$files->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
$files = new RecursiveIteratorIterator($files);
foreach ($files as $file) {
    echo $file->getRealPath() . '<br>';
}
?>
</pre>
</body>
</html>
Ejemplo n.º 9
0
 private static function buildFileList()
 {
     self::log();
     self::log('reading MPQdata from ' . self::$srcDir . ' to list for first time use...');
     $setupDirs = glob('setup/*');
     foreach ($setupDirs as $sd) {
         if (mb_substr(self::$srcDir, -1) == '/') {
             self::$srcDir = mb_substr(self::$srcDir, 0, -1);
         }
         if (mb_substr($sd, -1) == '/') {
             $sd = mb_substr($sd, 0, -1);
         }
         if (Util::lower($sd) == Util::lower(self::$srcDir)) {
             self::$srcDir = $sd . '/';
             break;
         }
     }
     try {
         $iterator = new RecursiveDirectoryIterator(self::$srcDir);
         $iterator->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
         foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::SELF_FIRST) as $path) {
             $_ = str_replace('\\', '/', $path->getPathname());
             self::$mpqFiles[strtolower($_)] = $_;
         }
         self::log('done');
         self::log();
     } catch (UnexpectedValueException $e) {
         self::log('- mpqData dir ' . self::$srcDir . ' does not exist', self::LOG_ERROR);
         return false;
     }
     return true;
 }
Ejemplo n.º 10
0
<?php

namespace App\Modules\mod_slider;

$files = new \RecursiveDirectoryIterator("./public/images/slider/");
$files->setFlags(\FilesystemIterator::UNIX_PATHS | \FilesystemIterator::KEY_AS_FILENAME | \FilesystemIterator::SKIP_DOTS);
$files = new \RecursiveIteratorIterator($files, \RecursiveIteratorIterator::SELF_FIRST);
$files->setMaxDepth(2);
$extension = array('jpg', 'png', 'jpeg');
?>

<div class="wrapper">
	<div class="slider-wrapper theme-default">
		<div class="ribbon"></div>
		<div id="slider" class="nivoSlider">
            <?php 
foreach ($files as $key => $file) {
    if (in_array($file->getExtension(), $extension)) {
        echo "<img src='{$file}' />";
    }
}
?>
		</div><!-- END of slider-wrapper -->
	</div><!-- END of nivoSlider -->
</div><!-- END of WRAPPER -->


<link rel="stylesheet" href="./public/js/nivo-slider/nivo-slider.css" type="text/css" />
<link rel="stylesheet" href="./public/js/nivo-slider/themes/default/default.css" type="text/css" />

<script type="text/javascript" src="./public/js/nivo-slider/jquery.nivo.slider.pack.js"></script>
Ejemplo n.º 11
0
    }
    echo '<br>', I18N::plural('%1$s file was extracted in %2$s seconds.', '%1$s files were extracted in %2$s seconds.', count($res), count($res), I18N::number($end_time - $start_time, 2)), $icon_success;
} else {
    echo '<br>', I18N::translate('An error occurred when unzipping the file.'), $icon_failure;
    echo '<pre>', $archive->errorInfo(true), '</pre>';
    echo '</li></ul></form>';
    return;
}
echo '</li>';
////////////////////////////////////////////////////////////////////////////////
// This is it - take the site offline first
////////////////////////////////////////////////////////////////////////////////
echo '<li>', I18N::translate('Check file permissions…');
reset_timeout();
$iterator = new \RecursiveDirectoryIterator($zip_dir);
$iterator->setFlags(\RecursiveDirectoryIterator::SKIP_DOTS);
foreach (new \RecursiveIteratorIterator($iterator) as $file) {
    $file = WT_ROOT . substr($file, strlen($zip_dir) + 1);
    if (file_exists($file) && (!is_readable($file) || !is_writable($file))) {
        echo '<br>', I18N::translate('The file %s could not be updated.', Html::filename($file)), $icon_failure;
        echo '</li></ul>';
        echo '<p class="error">', I18N::translate('To complete the upgrade, you should install the files manually.'), '</p>';
        echo '<p>', I18N::translate('The new files are currently located in the folder %s.', Html::filename($zip_dir)), '</p>';
        echo '<p>', I18N::translate('Copy these files to the folder %s, replacing any that have the same name.', Html::filename(WT_ROOT)), '</p>';
        echo '<p>', I18N::translate('To prevent visitors from accessing the website while you are in the middle of copying files, you can temporarily create a file %s on the server. If it contains a message, it will be displayed to visitors.', Html::filename($lock_file)), '</p>';
        return;
    }
}
echo '<br>', I18N::translate('All files have read and write permission.'), $icon_success;
echo '</li>';
////////////////////////////////////////////////////////////////////////////////
Ejemplo n.º 12
0
 protected function _refreshLocal($myrole, $drivers)
 {
     $job = $this->_out->jobStart("traversing file system starting at {$this->_baseDir}");
     /* @var $compare Compare_Sqlite */
     $compare = $drivers[Core_Engine::ROLE_COMPARE];
     $stat = $this->_fileStat;
     $it = new RecursiveDirectoryIterator($this->_baseDir);
     $it->setFlags(RecursiveDirectoryIterator::SKIP_DOTS);
     //$it = new DirnameFilter($it, "/informa/i");
     if (isset($this->_options['filter'])) {
         $this->_out->logNotice(">>>applying filter " . $this->_options['filterType']);
         $filterConf = $this->_options['filter'][$this->_options['filterType']];
         /** @var $filter Filter_Interface */
         $filter = new $filterConf['class']($filterConf);
         $filter->setIterator($it);
         $it = $filter->applyFilters();
     }
     $itemCount = 0;
     $this->_trimFromBegin = strlen($this->_baseDir);
     $compare->updateFromLocalStart();
     foreach (new RecursiveIteratorIterator($it, RecursiveIteratorIterator::SELF_FIRST) as $file) {
         /** @var $file SplFileObject */
         //we don't need make entry for not empty folder
         if ($file->isDir() && !Storage_Filesystem_FileStat::isEmptyDir((string) $file)) {
             continue;
         }
         $file = (string) $file;
         $obj = Core_FsObject::factoryFromStat($this->_makePath($file), $stat->getStat($file));
         $compare->updateFromLocal($obj);
         $itemCount++;
     }
     $compare->updateFromLocalEnd();
     $this->_out->jobEnd($job, "updated info about {$itemCount} files");
 }
Ejemplo n.º 13
0
 /**
  * @param ContainerInterface $dic
  *
  * @return array
  */
 private function getFilteredEveApiSubscriberList(ContainerInterface $dic) : array
 {
     $flags = \FilesystemIterator::CURRENT_AS_FILEINFO | \FilesystemIterator::KEY_AS_PATHNAME | \FilesystemIterator::SKIP_DOTS | \FilesystemIterator::UNIX_PATHS;
     $rdi = new \RecursiveDirectoryIterator($dic['Yapeal.EveApi.dir']);
     $rdi->setFlags($flags);
     /** @noinspection SpellCheckingInspection */
     $rcfi = new \RecursiveCallbackFilterIterator($rdi, function (\SplFileInfo $current, $key, \RecursiveDirectoryIterator $rdi) {
         if ($rdi->hasChildren()) {
             return true;
         }
         $dirs = ['Account', 'Api', 'Char', 'Corp', 'Eve', 'Map', 'Server'];
         $dirExists = in_array(basename(dirname($key)), $dirs, true);
         return $dirExists && $current->isFile() && 'php' === $current->getExtension();
     });
     /** @noinspection SpellCheckingInspection */
     $rii = new \RecursiveIteratorIterator($rcfi, \RecursiveIteratorIterator::LEAVES_ONLY, \RecursiveIteratorIterator::CATCH_GET_CHILD);
     $rii->setMaxDepth(3);
     $fpn = $this->getFpn();
     $files = [];
     foreach ($rii as $file) {
         $files[] = $fpn->normalizeFile($file->getPathname());
     }
     return $files;
 }
Ejemplo n.º 14
0
 /**
  * Recursive listing of directory, files and dirs. If a set of extensions is
  * passed only matching files will be returned (do not pass the dot in the extensions)
  *
  * @param string $path Directory where you want to start parsing.
  * @param array $valid_extensions List of accepted extensions in the list, empty array for no filtering.
  * @return
  * ratorIterator of RecursiveDirectoryIterator
  */
 public function getRecursiveList($path, $accept_directories = true, $valid_extensions = array())
 {
     $mode = $this->_getIteratorMode($accept_directories);
     $recursive_dir_iterator = new \RecursiveDirectoryIterator($path);
     $recursive_dir_iterator->setFlags(\RecursiveDirectoryIterator::SKIP_DOTS);
     if (!empty($valid_extensions)) {
         return new FilterFilesByExtensionIterator(new \RecursiveIteratorIterator($recursive_dir_iterator, $mode, \RecursiveIteratorIterator::CATCH_GET_CHILD), $valid_extensions);
     } else {
         return new \RecursiveIteratorIterator($recursive_dir_iterator, $mode, \RecursiveIteratorIterator::CATCH_GET_CHILD);
     }
 }
Ejemplo n.º 15
0
<?php

$watchFolders = $_POST['foldersToWatch'];
$extensions = $_POST['extensions'];
$extensions = implode('|', $extensions);
$dir = array();
foreach ($watchFolders as $folder) {
    $dirIter = new RecursiveDirectoryIterator($folder);
    $dirIter->setFlags(FilesystemIterator::SKIP_DOTS);
    $recursiveIter = new RecursiveIteratorIterator($dirIter);
    $regexpIter = new RegexIterator($recursiveIter, '/^.*\\.(' . $extensions . ')$/');
    foreach ($regexpIter as $path) {
        $dir[] = $path->getPathName();
    }
}
$files = [];
foreach ($dir as $path) {
    $files[] = filemtime($path);
}
$last = max($files);
header('Content-Type: application/json');
echo json_encode(array('last' => $last));