В качестве альтернативы ссылкам, которые я указывал в комментариях:
Вы также можете расширить метод TreeIterator current()
, чтобы обеспечить дополнительную разметку:
class LinkedRecursiveTreeIterator extends RecursiveTreeIterator
{
public function current()
{
return str_replace(
$this->getInnerIterator()->current(),
sprintf(
'<a href="%1$s">%1$s</a>',
$this->getInnerIterator()->current()
),
parent::current()
);
}
}
$treeIterator = new LinkedRecursiveTreeIterator(
new RecursiveDirectoryIterator('/path/to/dir'),
LinkedRecursiveTreeIterator::LEAVES_ONLY);
foreach($treeIterator as $val) echo $val, PHP_EOL;
Выше будет напечатано обычное дерево ASCII TreeIterator
печатает, но обернет имя файла в гиперссылки.Обратите внимание, что $this->getInnerIterator()->current()
возвращает объекты File, поэтому вы также можете получить доступ к любым другим свойствам файла, таким как размер файла, последнее изменение и т. Д.