Привет, Я пытаюсь создать простой браузер каталога для просмотра папок и подпапок uing php RecursiveDirectoryIterator .. Мне нужна помощь в том, как это создать. Я начал со следующего кода.
$dir = dirname(__FILE__); //path of the directory to read $iterator = new RecursiveDirectoryIterator($dir); foreach (new RecursiveIteratorIterator($iterator, RecursiveIteratorIterator::CHILD_FIRST) as $file) { if (!$file->isFile()) { //create hyperlink if this is a folder echo "<a href=". $file->getPath().">" . $file->getFilename() . "\</a>"; }else{ //do not link if this is a file $file->getFilename() } }
Позвольте мне закодировать это для вас ….
<?php $root = __DIR__; function is_in_dir($file, $directory, $recursive = true, $limit = 1000) { $directory = realpath($directory); $parent = realpath($file); $i = 0; while ($parent) { if ($directory == $parent) return true; if ($parent == dirname($parent) || !$recursive) break; $parent = dirname($parent); } return false; } $path = null; if (isset($_GET['file'])) { $path = $_GET['file']; if (!is_in_dir($_GET['file'], $root)) { $path = null; } else { $path = '/'.$path; } } if (is_file($root.$path)) { readfile($root.$path); return; } if ($path) echo '<a href="?file='.urlencode(substr(dirname($root.$path), strlen($root) + 1)).'">..</a><br />'; foreach (glob($root.$path.'/*') as $file) { $file = realpath($file); $link = substr($file, strlen($root) + 1); echo '<a href="?file='.urlencode($link).'">'.basename($file).'</a><br />'; }