PHP 8.6.0 Beta 1 is available for testing

La clase GlobIterator

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

Introducción

Recorre un sistema de ficheros, de manera similar a la función glob() .

Sinopsis de la clase

class GlobIterator extends FilesystemIterator implements Countable {
/* Constantes heredadas */
/* Métodos */
public function __construct (string $pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)
public function count (): int
/* Métodos heredados */
public function FilesystemIterator::getFlags (): int
public function FilesystemIterator::key (): string
public function FilesystemIterator::next (): void
public function FilesystemIterator::rewind (): void
public function FilesystemIterator::setFlags (int $flags): void
public function DirectoryIterator::current (): mixed
public function DirectoryIterator::getBasename (string $suffix = ""): string
public function DirectoryIterator::isDot (): bool
public function DirectoryIterator::key (): mixed
public function DirectoryIterator::next (): void
public function DirectoryIterator::rewind (): void
public function DirectoryIterator::seek (int $offset): void
public function DirectoryIterator::valid (): bool
public function SplFileInfo::getATime (): int |false
public function SplFileInfo::getBasename (string $suffix = ""): string
public function SplFileInfo::getCTime (): int |false
public function SplFileInfo::getExtension (): string
public function SplFileInfo::getFileInfo (? string $class = null ): SplFileInfo
public function SplFileInfo::getFilename (): string
public function SplFileInfo::getGroup (): int |false
public function SplFileInfo::getInode (): int |false
public function SplFileInfo::getMTime (): int |false
public function SplFileInfo::getOwner (): int |false
public function SplFileInfo::getPath (): string
public function SplFileInfo::getPathInfo (? string $class = null ): ? SplFileInfo
public function SplFileInfo::getPathname (): string
public function SplFileInfo::getPerms (): int |false
public function SplFileInfo::getRealPath (): string |false
public function SplFileInfo::getSize (): int |false
public function SplFileInfo::getType (): string |false
public function SplFileInfo::isDir (): bool
public function SplFileInfo::isExecutable (): bool
public function SplFileInfo::isFile (): bool
public function SplFileInfo::isLink (): bool
public function SplFileInfo::isReadable (): bool
public function SplFileInfo::isWritable (): bool
public function SplFileInfo::openFile (string $mode = "r", bool $useIncludePath = false , ? resource $context = null ): SplFileObject
public function SplFileInfo::setFileClass (string $class = SplFileObject::class): void
public function SplFileInfo::setInfoClass (string $class = SplFileInfo::class): void
public function SplFileInfo::__toString (): string
}

Tabla de contenidos

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 2 notes

up
2
info at ensostudio dot ru
6 years ago
Fix problem with braces in template:
<?php
class GlobStreamWrapper
{
 private $generator;
 protected function createGenerator(array $paths): Generator
 {
 return yield from $paths;
 }
 public function dir_opendir(string $pattern, int $options = 0): bool
 {
 $pattern = substr($pattern, 7); // crop 'glob://' prefix
 $pattern = str_replace(['\\', '/'], DIRECTORY_SEPARATOR, $pattern);
 $paths = (array) glob($pattern, GLOB_BRACE | GLOB_NOSORT);
 $this->generator = $this->createGenerator($paths);
 return $this->generator->valid();
 }
 public function dir_readdir(): string
 {
 $path = $this->generator->current() ?: '';
 $this->generator->next();
 return $path;
 }
 public function dir_rewinddir(): bool
 {
 $this->generator->rewind();
 return $this->generator->valid();
 }
 public function dir_closedir(): bool
 {
 $this->generator = null;
 return true;
 }
}
?>
Replace glob wrapper:
<?php
stream_wrapper_unregister('glob');
stream_wrapper_register('glob', 'GlobStreamWrapper');
?>
Example:
<?php
$iterator = new GlobIterator(__DIR__ . '/{application,system}/src/*.php');
while ($iterator->valid()) {
 echo $iterator->current()->getFilename() . '</br>';
 $iterator->next();
}
?>
up
1
info at ensostudio dot ru
5 years ago
NOTE: "similar fashion to glob()" GlobIterator use stream wrapper "glob://" = use glob()
+add a note

AltStyle によって変換されたページ (->オリジナル) /