dongyuling0312 2011-06-03 05:35
浏览 84
已采纳

使用PHP RecursiveDirectoryIterator构建一个简单的目录浏览器

Hi i am trying to build simple directory browser to browse folders and sub-folders uing php RecursiveDirectoryIterator .. i need help of how to create this. i have started with the following code.

$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()
  }
}
  • 写回答

1条回答 默认 最新

  • doudang1890 2011-06-03 05:54
    关注

    Allow me to code that for you....

    <?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 />';
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 求帮我调试一下freefem代码
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图