当前位置: 首页>>代码示例>>PHP>>正文


PHP DirectoryIterator::valid方法代码示例

本文整理汇总了PHP中DirectoryIterator::valid方法的典型用法代码示例。如果您正苦于以下问题:PHP DirectoryIterator::valid方法的具体用法?PHP DirectoryIterator::valid怎么用?PHP DirectoryIterator::valid使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DirectoryIterator的用法示例。


在下文中一共展示了DirectoryIterator::valid方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: scanFolder

 protected function scanFolder($folder, &$position, $forFolders = true, $threshold_key = 'dir', $threshold_default = 50)
 {
     $registry = AEFactory::getConfiguration();
     // Initialize variables
     $arr = array();
     $false = false;
     if (!is_dir($folder) && !is_dir($folder . '/')) {
         return $false;
     }
     try {
         $di = new DirectoryIterator($folder);
     } catch (Exception $e) {
         $this->setWarning('Unreadable directory ' . $folder);
         return $false;
     }
     if (!$di->valid()) {
         $this->setWarning('Unreadable directory ' . $folder);
         return $false;
     }
     if (!empty($position)) {
         $di->seek($position);
         if ($di->key() != $position) {
             $position = null;
             return $arr;
         }
     }
     $counter = 0;
     $maxCounter = $registry->get("engine.scan.large.{$threshold_key}_threshold", $threshold_default);
     while ($di->valid()) {
         if ($di->isDot()) {
             $di->next();
             continue;
         }
         if ($di->isDir() != $forFolders) {
             $di->next();
             continue;
         }
         $ds = $folder == '' || $folder == '/' || @substr($folder, -1) == '/' || @substr($folder, -1) == DIRECTORY_SEPARATOR ? '' : DIRECTORY_SEPARATOR;
         $dir = $folder . $ds . $di->getFilename();
         $data = _AKEEBA_IS_WINDOWS ? AEUtilFilesystem::TranslateWinPath($dir) : $dir;
         if ($data) {
             $counter++;
             $arr[] = $data;
         }
         if ($counter == $maxCounter) {
             break;
         } else {
             $di->next();
         }
     }
     // Determine the new value for the position
     $di->next();
     if ($di->valid()) {
         $position = $di->key() - 1;
     } else {
         $position = null;
     }
     return $arr;
 }
开发者ID:WineWorld,项目名称:joomlatrialcmbg,代码行数:59,代码来源:large.php

示例2: load

 /**
  * Carrega todos os arquivos do pacote especificado o carregamento considera o classpath atual da execusão
  *
  * @param string $package nome do pacote
  */
 public static function load($package)
 {
     self::getCurrentPath();
     if (substr($package, -1, 1) != "/") {
         $package .= "/";
     }
     foreach (self::$classPath as $path) {
         $dir = $path . $package;
         if (is_dir($dir)) {
             $d = new DirectoryIterator($dir);
             while ($d->valid()) {
                 if ($d->isFile()) {
                     $requireThis = false;
                     //testa a extensão
                     foreach (self::$filesExtensions as $ext) {
                         if (substr($d->getFilename(), strlen($ext) * -1, strlen($ext)) == $ext) {
                             $requireThis = true;
                             break;
                         }
                     }
                     if ($requireThis) {
                         require_once $package . $d->getFilename();
                     }
                 }
                 $d->next();
             }
         }
     }
 }
开发者ID:laiello,项目名称:samusframework,代码行数:34,代码来源:Package.php

示例3: findBy

 /**
  *
  * @param Criterio $filtro
  * @param string $order
  * @param integer $limitOffset
  * @param integer $limitCount
  * @param string $group
  * @return mixed Proyecto
  */
 function findBy($filtro = null, $order = null, $limitOffset = null, $limitCount = null, $group = null)
 {
     $dir = new DirectoryIterator(DIR_PROYECTOS);
     while ($dir->valid()) {
         if ($dir->isFile() && stripos($dir->getFilename(), '.json')) {
             $proyFilename = DIR_PROYECTOS . $dir->getFilename();
             $p = new Proyecto();
             $fp = fopen($proyFilename, 'r');
             $strJsonProy = fread($fp, filesize($proyFilename));
             fclose($fp);
             $jsonProy = json_decode($strJsonProy);
             $p->setNombre($jsonProy->nombre);
             $p->setRuta($jsonProy->ruta);
             $p->setTieneProyectoEcplipse(file_exists("{$jsonProy->ruta}/.project"));
             if ($p->getTieneProyectoEclipse()) {
                 $eclipseProy = simplexml_load_file("{$jsonProy->ruta}/.project");
                 $p->setNombre((string) $eclipseProy->name);
             }
             $p->setId($jsonProy->id);
             $p->setDbConfig($jsonProy->dbConfig);
             $lista[] = $p;
         }
         $dir->next();
     }
     return $lista;
 }
开发者ID:asivas,项目名称:pasquino-tools,代码行数:35,代码来源:DaoProyecto.class.php

示例4: loadMigrations

 public function loadMigrations()
 {
     $result = array('mgrs' => array(), 'headers' => array(array('id' => 'id', 'content' => Loc::getMessage('MIGRATION_ID'), 'sort' => 'id', 'align' => 'left', 'default' => true), array('id' => 'status', 'content' => Loc::getMessage('MIGRATION_STATUS'), 'align' => 'right', 'default' => true), array('id' => 'date_c', 'content' => Loc::getMessage('MIGRATION_DATE_CHANGED'), 'align' => 'right', 'default' => true), array('id' => 'date_a', 'content' => Loc::getMessage('MIGRATION_DATE_ADDED'), 'align' => 'right', 'default' => true)));
     $db_mgrs = $this->loadDBMigrations();
     $mgr_path = Option::get(UM_BM_MODULE_NAME, 'migration_folder', UM_BM_MGR_PATH);
     $di = new \DirectoryIterator($_SERVER['DOCUMENT_ROOT'] . $mgr_path);
     while ($di->valid()) {
         if (!$di->isDot() && $this->hasProperFilename($di->getFilename())) {
             $filename = $di->getFilename();
             if (!array_key_exists($filename, $db_mgrs)) {
                 $mgr = new BixMigBase();
                 $mgr->setCode($filename)->setStatus('UNKNOWN')->setAddDate(date('d.m.Y H:i:s'))->setChangeDate()->add();
                 $result['mgrs'][] = $mgr;
             } else {
                 $result['mgrs'][] = $db_mgrs[$filename];
                 unset($db_mgrs[$filename]);
             }
         }
         $di->next();
     }
     if (!empty($db_mgrs)) {
         $this->deleteOrphans($db_mgrs);
     }
     return $result;
 }
开发者ID:u-mulder,项目名称:bixmigs,代码行数:25,代码来源:bxmg_dispatcher.php

示例5: logAction

 public function logAction()
 {
     $pageSize = 4096;
     $overlapSize = 128;
     $dir = APPLICATION_PATH . '/../data/logs/';
     $file = $this->_getParam('file', null);
     $this->view->page = $this->_getParam('page', 0);
     if ($file === null) {
         $file = sprintf('%s_application.log', Zend_Date::now()->toString('yyyy.MM.dd'));
     }
     $fp = fopen($dir . $file, 'r');
     fseek($fp, -$pageSize * ($this->view->page + 1) + $overlapSize, SEEK_END);
     $this->view->errorLog = fread($fp, $pageSize + $overlapSize * 2);
     fclose($fp);
     $iterator = new DirectoryIterator($dir);
     while ($iterator->valid()) {
         if (!$iterator->isDot()) {
             if ($iterator->isFile()) {
                 $files[$iterator->getFilename()] = $iterator->getPathName();
             }
         }
         $iterator->next();
     }
     $this->view->itemCountPerPage = $pageSize;
     $this->view->totalItemCount = filesize($dir . $file);
     $this->view->files = $files;
 }
开发者ID:netconstructor,项目名称:Centurion,代码行数:27,代码来源:IndexController.php

示例6: getImgArray

 /**
  * Obtem um array de ImgObject com todos os arquivos de imagens dos 
  * diretórios especificados
  * 
  * @param int|null $limit
  * @return array
  */
 public function getImgArray($limit = null)
 {
     $imgArray = array();
     foreach ($this->getDir() as $diretorio) {
         $imgArray = array();
         $d = new DirectoryIterator($diretorio);
         while ($d->valid()) {
             if (!$d->isDot()) {
                 $fileName = $d->getFilename();
                 if ($this->validateFormat($fileName)) {
                     $imgObj = new ImgObject($fileName, $diretorio);
                     $imgArray[] = $imgObj;
                     ++$this->imgCount;
                     if ($limit != null) {
                         if ($this->imgCount >= $limit) {
                             break;
                         }
                     }
                 }
             }
             $d->next();
         }
     }
     return $imgArray;
 }
开发者ID:laiello,项目名称:samusframework,代码行数:32,代码来源:ImgDir.php

示例7: fromFileScan

 /**
  * @ignore
  */
 public static function fromFileScan($uPattern)
 {
     $tSep = quotemeta(DIRECTORY_SEPARATOR);
     $tPos = strrpos($uPattern, $tSep);
     if ($tSep !== '/' && $tPos === false) {
         $tSep = '/';
         $tPos = strrpos($uPattern, $tSep);
     }
     if ($tPos !== false) {
         $tPattern = substr($uPattern, $tPos + strlen($tSep));
         $tPath = substr($uPattern, 0, $tPos + strlen($tSep));
     } else {
         $tPath = $uPattern;
         $tPattern = "";
     }
     $tTemp = new static();
     $tHandle = new \DirectoryIterator($tPath);
     $tPatExists = strlen($uPattern) > 0;
     for (; $tHandle->valid(); $tHandle->next()) {
         if (!$tHandle->isFile()) {
             continue;
         }
         $tFile = $tHandle->current();
         if ($tPatExists && !fnmatch($tPattern, $tFile)) {
             continue;
         }
         $tTemp->add(simplexml_load_file($tPath . $tFile));
     }
     return $tTemp;
 }
开发者ID:eserozvataf,项目名称:scabbia1,代码行数:33,代码来源:XmlCollection.php

示例8: executeDir

 function executeDir($directory)
 {
     $iterator = new DirectoryIterator($directory);
     while ($iterator->valid()) {
         $entry = $iterator->getFilename();
         $path = $directory . '/' . $entry;
         $iterator->next();
         if ($entry[0] == '.') {
             continue;
         }
         if (is_file($path)) {
             if (substr($entry, -4) != '.php') {
                 continue;
             }
             if (ctype_upper($entry[0])) {
                 $test = new DocTest($path);
                 if ($test->failed()) {
                     echo $test->toString();
                     $this->fail('Doc test failed.');
                 } else {
                     if ($test->numOfPassed()) {
                         echo ',';
                     } else {
                         echo ' ';
                     }
                 }
             }
         } elseif (is_dir($path)) {
             $this->executeDir($path);
         }
     }
 }
开发者ID:BackupTheBerlios,项目名称:ubook-svn,代码行数:32,代码来源:DocumentationTest.php

示例9: searchInDir

 /**
  * Método recursivo que busca o arquivo em todas as pastadas dentro do
  * diretorio específicado
  *
  * @param string $dir
  * @param string $file
  * @return boolean
  */
 public static function searchInDir($dir, $file)
 {
     if (is_file($dir . "/" . $file)) {
         require_once $dir . "/" . $file;
         self::$find = true;
         if (self::$sugests) {
             $fileName = $dir . "/" . $file;
             $fileName = str_replace(self::$currentPath, "", $fileName);
             echo "require_once '" . $fileName . "';<br>\n";
         }
         return true;
     }
     if (is_dir($dir)) {
         $d = new DirectoryIterator($dir);
         while (!self::$find && $d->valid()) {
             if (is_dir($d->getPath() . '/' . $d->getFilename())) {
                 //testa se o arquivo pode ser incluido
                 $inc = true;
                 foreach (self::$blockedDirs as $bDir) {
                     if ($d->getFilename() == $bDir) {
                         $inc = false;
                         break;
                     }
                 }
                 if (!$d->isDot() && $inc) {
                     self::searchInDir($d->getPath() . '/' . $d->getFilename(), $file);
                 }
             }
             $d->next();
         }
     }
     return self::$find;
 }
开发者ID:laiello,项目名称:samusframework,代码行数:41,代码来源:AutoRequire.php

示例10: execute

 /**
  * @see sfTask
  */
 protected function execute($arguments = array(), $options = array())
 {
     $this->checkORMType($options['type']);
     parent::execute($arguments, $options);
     $this->_runInitTask();
     $options['application'] = $arguments['application'];
     // still no class_path given? take the default one!
     if (empty($options['class_path'])) {
         $options['class_path'] = $this->modelTypes[$options['type']]['default_model_path'];
     }
     if (!empty($options['skip_methods'])) {
         $methods = explode(',', $options['skip_methods']);
         foreach ($methods as $method) {
             array_push($this->skipMethods, $method);
         }
     }
     // a custom class given?
     if (!empty($options['class'])) {
         if (strpos($options['class_path'], ':') !== false) {
             throw new sfCommandException(': is not supported in class_path when specifying the class name.');
         }
         $options['libpath'] = $options['class_path'];
         $this->createTestClass($options, $options['target']);
         return;
     }
     $paths = explode(':', $options['class_path']);
     $namespaces = array();
     foreach ($paths as $path) {
         $finder = sfFinder::type('directory');
         $ignoredDirs = $this->modelTypes[$options['type']]['ignored_directory'];
         foreach ($ignoredDirs as $ignDir) {
             $finder = $finder->not_name($ignDir);
         }
         $dirs = $finder->in($path);
         foreach ($dirs as $dir) {
             if (is_dir($dir)) {
                 $namespaces[] = $dir;
             }
         }
     }
     $paths = array_merge($paths, $namespaces);
     foreach ($paths as $path) {
         $options['libpath'] = $path;
         $dir = new DirectoryIterator($path);
         $this->logSection('phpunit', sprintf('Searching %s', $path));
         while ($dir->valid()) {
             if (strpos($dir, '.php') !== false) {
                 $subfolder = basename(dirname($path . DIRECTORY_SEPARATOR . $dir));
                 $suffix = !empty($options['file_suffix']) ? $options['file_suffix'] : $this->modelTypes[$options['type']]['classFileSuffix'];
                 $options['class'] = str_replace($suffix, '', $dir);
                 $this->createTestClass($options, $subfolder);
             }
             $dir->next();
         }
     }
     $this->_runInitTask();
 }
开发者ID:harking,项目名称:sfPhpunitPlugin,代码行数:60,代码来源:sfPhpunitCreateModelsTestTask.class.php

示例11: valid

 public function valid()
 {
     if (!parent::valid()) {
         return false;
     }
     if (!$this->_apb) {
         return true;
     }
     return $this->isAllowed();
 }
开发者ID:sonvq,项目名称:2015_freelance6,代码行数:10,代码来源:Filesystem.php

示例12: cleanDir

 protected function cleanDir($dir)
 {
     $files = new \DirectoryIterator($dir);
     while ($files->valid()) {
         if (in_array(substr($files->current(), -2), ['.0', '.1'])) {
             unlink($dir . '/' . $files->current());
         }
         $files->next();
     }
 }
开发者ID:vtk13,项目名称:word-counter,代码行数:10,代码来源:Parser.php

示例13: rewind

 /**
  * Rewinds the cache entry iterator to the first element
  *
  * @return void
  * @api
  */
 public function rewind()
 {
     if ($this->cacheFilesIterator === null) {
         $this->cacheFilesIterator = new \DirectoryIterator($this->cacheDirectory);
     }
     $this->cacheFilesIterator->rewind();
     while (substr($this->cacheFilesIterator->getFilename(), 0, 1) === '.' && $this->cacheFilesIterator->valid()) {
         $this->cacheFilesIterator->next();
     }
 }
开发者ID:kszyma,项目名称:flow-development-collection,代码行数:16,代码来源:SimpleFileBackend.php

示例14: valid

 public function valid()
 {
     if (parent::valid()) {
         if (!parent::isFile()) {
             parent::next();
             return $this->valid();
         }
         return True;
     }
     return False;
 }
开发者ID:BackupTheBerlios,项目名称:stato-svn,代码行数:11,代码来源:folder.php

示例15: valid

 /**
  * valid 
  * 
  * @access public
  * @return bool
  */
 public function valid()
 {
     if (parent::valid()) {
         if (parent::isDir()) {
             parent::next();
             return $this->valid();
         }
         return true;
     }
     return false;
 }
开发者ID:nmred,项目名称:study_test,代码行数:17,代码来源:sw_directory_iterator.php


注:本文中的DirectoryIterator::valid方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。