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();
}
?>
PHP.mk документација
GlobIterator
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
class.globiterator.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
class.globiterator.php
GlobIterator
Референца за `class.globiterator.php` со подобрена типографија и навигација.
Класата GlobIterator
(PHP 5 >= 5.3.0, PHP 7, PHP 8)
Вовед
Итерира низ датотечниот систем на сличен начин како glob().
Синопсис на класата
/* Наследни константи */
/* Методи */
public __construct(string
$pattern, int $flags = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO)/* Наследени методи */
public SplFileInfo::openFile(string
}$mode = FilesystemIterator::KEY_AS_PATHNAME | FilesystemIterator::CURRENT_AS_FILEINFO, bool $useIncludePath = false, ?resource $context = null): SplFileObjectСодржина
- GlobIterator::__construct — Конструирај директориум користејќи glob
- GlobIterator::count — Добиј го бројот на директориуми и датотеки
Белешки од корисници 2 забелешки
info на ensostudio точка ru ¶
пред 5 години
info на ensostudio точка ru ¶
пред 5 години
NOTE: "similar fashion to glob()" GlobIterator use stream wrapper "glob://" = use glob()