doufunuo4787 2013-09-25 16:41
浏览 53
已采纳

PHP列出目录中的所有文件 - 链接到文件?

Related to this post: "PHP list all files in directory" , specifically the code displayed by "Apr 19 '12 at 12:24 " Kiko"

I was wondering if anyone can suggest how to determine the folder path to the file itself: i.e.

$html .= "<li><span class='file'><a href='???' target='_blank'>". $eachDirectory ."</a></span></li>";

S I can wrap an HREF around it so it. The functions are recursive so I'm not sure at which stage I can determine the path of the file. Anyone have a way to do this? Thanks!

  • 写回答

1条回答 默认 最新

  • dsio68964998 2013-09-25 17:33
    关注

    I've looked at the referenced code and I have modified it to suite your needs. Replace ONLY the createTree function with this and try it

    function createTree($directory,$parent = '')
    {
        $html = "<ul>";
    
        foreach($directory as $keyDirectory => $eachDirectory)
        {
            if(is_array($eachDirectory))
            {
                $html .= "<li class='closed'><span class='folder'>" . $keyDirectory . "</span>";
                $html .= createTree($eachDirectory,$keyDirectory);
                $html .=  "</li>";
            }
            else
            {
                $origin = 'imgs';
                if(trim($parent) !== ''){
                    $path = $origin . '/' . $parent . "/" .$eachDirectory;
                }else{
                    $path = $origin . '/' . $eachDirectory;
                }
                $html .= "<li><span class='file'><a href='" . $path . "' target='_blank'>". $eachDirectory ."</a></span></li>";
    
            }
        }
        $html .= "</ul>";
    
        return $html;
    }
    

    You will notice that I've added a new argument item to the argument list of that function called $parent. This is used to carry the folder name of the parent folder of the item that will be linked. The folder name is then appended to the $origin variable (which is the name of the folder you traversed using the getFolderTree function , in my case it's 'imgs'.

    There is an if-else statement that checks if the $parent is empty, it's pretty self explanatory from there. If you want clarification please ask.

    NOTE 1: You need to replace the $origin value to the name of the folder at the root to get full paths

    NOTE 2: You need to replace the forwardslash (/) to that of your system e.g. for *NIX it's a backslash so for PHP you need to use a double-backslash when working inside of strings but if you're on Windows my edit will work fine

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 乌班图ip地址配置及远程SSH
  • ¥15 怎么让点阵屏显示静态爱心,用keiluVision5写出让点阵屏显示静态爱心的代码,越快越好
  • ¥15 PSPICE制作一个加法器
  • ¥15 javaweb项目无法正常跳转
  • ¥15 VMBox虚拟机无法访问
  • ¥15 skd显示找不到头文件
  • ¥15 机器视觉中图片中长度与真实长度的关系
  • ¥15 fastreport table 怎么只让每页的最下面和最顶部有横线
  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?