<?php
function get_index ($directory, $i=0) //输出文件列表的html代码
{
    global $file_list;
    $handle = opendir( $directory ); //打开目录
    while ( $file = readdir($handle) ) //遍历循环文件和目录
    {
        $bdir = $directory . '/' .$file; 
        if ($file <> '.' && $file <> '..' && is_dir($bdir)) //如果不是.和 ..并且$bdir是个目录
        {
            get_index($directory .'/'. $file, $i); //递归
        }
        else if ( $file <> '.' && $file <> '..') 
        {
            $file_list.= '<li><a href="' . substr(substr($directory, $i) .'/'. $file, 1) . '">' . substr(substr($directory, $i) .'/'. $file, 1) . '</a></li>';
        }
    }
    closedir( $handle ); //关闭目录
    return $file_list; 
}

function make_file($content, $filename='index.htm') //生成列表文件
{
    $fp = fopen($filename,'w');
    fwrite($fp, $content);
    fclose($fp);
    header('location:' . $filename);
}

if($_GET['action']==make)
{
    $dir=$_POST['dir']?$_POST['dir']:dirname(__FILE__); //指定路径
    make_file(get_index($dir,strlen($dir))); //生成文件
}

echo 
'
    <form method="post" action="?action=make">
    输入路径：<input type="text" name="dir" />
    <input type="submit" value="确定" />
    </form>
';