本文整理汇总了PHP中DirectoryIterator类的典型用法代码示例。如果您正苦于以下问题:PHP DirectoryIterator类的具体用法?PHP DirectoryIterator怎么用?PHP DirectoryIterator使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DirectoryIterator类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: 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;
}
示例2: 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;
}
示例3: index
public function index($args)
{
$t = Registry::getInstance()->twig->loadTemplate('form/filepicker.tpl');
$c = array();
$localpath = Functions::nz($args['path'], '');
$mediapath = SITE_PATH . '/media/';
$dir = new \DirectoryIterator($mediapath . $localpath);
$picformats = array('png', 'jpg', 'gif');
$files = array();
foreach ($dir as $file) {
if (!$dir->isDot()) {
$path = URL_PATH . '/media/' . $localpath . $file;
$f = new \stdClass();
if (strlen($file) > 4 && in_array(substr($file, -3), $picformats)) {
$picture = $path;
} elseif ($dir->isDir()) {
$picture = TEMPLATE_PATH . 'form/pics/folder.png';
} else {
$picture = TEMPLATE_PATH . 'form/pics/file.png';
}
$f->path = $localpath;
$f->picture = $picture;
$f->name = (string) $file;
$f->type = $dir->isDir() ? 'dir' : 'file';
$files[] = $f;
}
}
$c['files'] = $files;
$t->display($c);
}
示例4: 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);
}
}
}
示例5: ProcessFile
protected function ProcessFile(DirectoryIterator $pParent, DirectoryIterator $pNode)
{
$oldname = $pNode->getPathname();
$newname = $pParent->getPath() . '\\' . $this->GetLastFolderName($pParent->getPath()) . '.dds';
rename($oldname, $newname);
echo '<p>rename <b>' . $oldname . '</b> to <b>' . $newname . '<br/></p>';
}
示例6: collectSchema
/**
* Collect schema from wordpress active theme
*
* @return boolean true on success false if color schema folder is not exists
* in the active theme folder
*/
public function collectSchema()
{
$options = $this->getOptions();
$path = get_template_directory() . $options['path'];
// make sure that the color schema folder exsists
if (!file_exists($path) || !is_dir($path)) {
return;
// just ignore
}
// register the new color schema
$contents = new \DirectoryIterator($path);
foreach ($contents as $content) {
if ($contents->isDot()) {
continue;
}
if ($contents->isDir()) {
$name = $content->getFilename();
$init = parse_ini_file($content->getPathname() . '/schema.ini');
if (!is_array($init)) {
trigger_error('Unbale Admin Color Schema Config File', E_USER_ERROR);
}
$suffix = is_rtl() ? '-rtl' : '';
$url = get_template_directory_uri() . $options['path'] . '/' . $name . "/colors{$suffix}.css";
wp_admin_css_color($name, __(isset($init['name']) && !empty($init['name']) ? $init['name'] : $name, isset($init['domain']) && !empty($init['domain']) ? $init['domain'] : 'default'), $url, isset($init['colors']) && is_array($init['colors']) ? $init['colors'] : array(), isset($init['icons']) && is_array($init['icons']) ? $init['icons'] : array());
}
}
}
示例7: find_plugins
/**
* Find all plugins defined in your Kohana codebase
*/
public function find_plugins()
{
$paths = Kohana::include_paths();
foreach ($paths as $path) {
$dir = $path . self::$plugins_dir;
//if there's no plugin dir skip to the next path
if (!file_exists($dir)) {
continue;
}
// Instantiate a new directory iterator object
$directory = new DirectoryIterator($dir);
if ($directory->isDir()) {
foreach ($directory as $plugin) {
// Is directory?
if ($plugin->isDir() && !$plugin->isDot()) {
// if there's no plugin.php in this folder, ignore it
if (!file_exists($plugin->getPath() . DIRECTORY_SEPARATOR . $directory->getBasename() . DIRECTORY_SEPARATOR . 'plugin.php')) {
continue;
}
// Store plugin in our pool
self::$plugins_pool[$plugin->getFilename()]['plugin'] = ucfirst($plugin->getFilename());
self::$plugins_pool[$plugin->getFilename()]['path'] = $plugin->getPath() . DIRECTORY_SEPARATOR . $directory->getBasename();
}
}
}
}
return $this;
}
示例8: exportpluginAction
function exportpluginAction()
{
$aExtDir = array('ALYS.Report.Dictionary', 'ALYS.Report.Plugin');
// var_dump(LIB_PATH_ALYS);
// var_dump(EXT_PATH_ALYS);
$LIB_PATH_ALYS = "D:\\htdocs\\work\\apps\\code\\l_project_web\\module\\ycheukf\\Report\\src\\Report\\Lib";
$EXT_PATH_ALYS = "D:\\htdocs\\work\\apps\\code\\l_project_web\\module\\Application\\src\\Application\\YcheukfReportExt";
foreach ($aExtDir as $sTmp) {
$path = str_replace(".", '/', $sTmp);
$sDirPath = $LIB_PATH_ALYS . '/' . $path;
$sExtDirPath = $EXT_PATH_ALYS . '/' . str_replace("ALYS/", "", (string) $path);
//扩展目录, 若需要改路径请改此处
// var_export($sDirPath);
$it = new \DirectoryIterator($sDirPath);
foreach ($it as $file) {
if (!$it->isDot() && $file != '.svn' && $file != '.git') {
$this->recursiveMkdir($sExtDirPath, '0700');
copy($sDirPath . '/' . $file, $sExtDirPath . '/' . $file);
$sContent = file_get_contents($sExtDirPath . '/' . $file);
// $sContent = preg_replace("/require_once\(\"".str_replace(".", '\/', $sTmp).".php\"\);/s", ' ', $sContent);
$sClassName = str_replace(".php", "", (string) $file);
preg_match_all('/namespace (.*);/', $sContent, $aMatch);
// var_dump((string)$file);
// var_dump($aMatch[1][0]);
$sContent = str_replace("namespace YcheukfReport\\Lib\\ALYS", 'namespace YcheukfReportExt', $sContent);
$sContent = preg_replace("/class ([^\\s]+?) extends ([^}]+?)\\{/s", 'class \\1 extends \\2\\' . $sClassName . '{', $sContent);
// echo $sContent;
file_put_contents($sExtDirPath . '/' . $file, $sContent);
}
}
}
echo "\n\n export file to ext ... DONE\n\n";
exit;
}
示例9: 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;
}
示例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();
}
示例11: pushItem
/**
* Overwrite in children to parse files according to our style.
* @param array $listing
* @param DirectoryIterator $item
*/
public function pushItem(&$listing, DirectoryIterator $entry)
{
if (substr($filename = $entry->getFilename(), -4) == '.css') {
// a reset stylesheet, always used
if (strpos($stylename = $entry->getBasename('.css'), 'tripoli') !== FALSE) {
} else {
array_push($listing, $stylename);
}
}
}
示例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();
}
}
示例13: compileFile
private function compileFile(\DirectoryIterator $file)
{
$tag = file_get_contents($file->getPathname());
$tagName = $file->getBasename('.html');
$jsFunc = $this->extractJsFunction($tag, $tagName);
$tagHtml = $this->removeJsFromTag($tag, $tagName);
$tagHtml = str_replace('"', '\\"', $tagHtml);
$tagHtml = preg_replace("/\r|\n/", "", $tagHtml);
return 'riot.tag("' . $tagName . '", "' . $tagHtml . '", ' . $jsFunc . ');';
}
示例14: __construct
function __construct($link)
{
$d = new DirectoryIterator($link);
while ($d->valid()) {
$file = $d->current();
if (!$file->isDot()) {
$this->files[] = $file->getFilename();
}
$d->next();
}
$this->path = $d->getPath();
}
示例15: addFromFile
/**
* @param DirectoryIterator $file
*/
private function addFromFile(DirectoryIterator $file)
{
$match = preg_match('/([^.]+)-custom.definition.json/', $file->getFilename(), $matches);
if (!$match) {
return;
}
$dictionaryName = $matches[1];
$translations = $this->loadTranslations($file->getPathname());
foreach ($translations as $translationName => $translations) {
$this->includeTranslation($dictionaryName, $translationName, $translations);
}
}