猿问

如何在链接上更改 scandir 的目录

我想用 scandir 小脚本打印当前目录的内容。这个想法是制作一个用于文件导航的小工具,可以预览存储 php 文件的目录,并可以在目录中导航。


问题是我不知道如何使用 getpost 更改 scandir 的目录(通过链接)并刷新文件以输出内容。


实际上我的脚本只有在我把它放在我想要浏览(然后返回)的每个目录中时才有效。有没有办法通过只将它放在我想要开始导航的目录中并通过单击文件夹来更改目录来使其工作?


我试图创建一个变量来转发帖子值并在当前输出上创建目录链接,如 chdir(directory) 并在顶部添加一个 if/else 以检查 getpost 中是否有内容,然后将目录更改为此而不是当前目录.. 但这仅适用于 2 个文件夹,然后停止工作..


<?php

$dir = '.';

$directories = array();

$files_list  = array();

$files = scandir($dir);


foreach ($files as $file) {

    if(($file != '.') && ($file != '..') && ($file != 'index.php') && ($file != 'assets')) {

    if(is_dir($dir.'/'.$file)){

        $directories[] = $file;

        }

        else {

        $files_list[] = $file;

        }

    }

}


// Print Directory to screen

foreach ($directories as $directory) {

    echo "<div class=\"wrapper\">";

    echo "<a href=\"" . $directory . "\">";

    echo "<div class=\"preview\">";

    echo "<img src=\"assets/media/ordner.png\" alt=\"directory\" class=\"packshot zoom\" />";

    echo "</div>";

    echo "</a>";

    echo "<div class=\"title\"><p>&raquo; " . $directory . "</p></div>";

    echo "</div>";

}


// print files

foreach ($files_list as $file_list) {

    $file_list_info = pathinfo($dir."/".$file_list);

    $file_list_size = ceil(filesize($dir."/".$file_list)/1024);

    $file_list_pic = array("jpeg", "jpg", "png", "gif", "svg", "bmp", "tiff");


    if(in_array($file_list_info['extension'],$file_list_pic)) {

    echo "<div class=\"wrapper\">";

    echo "<a href=\"" . $file_list . "\" target=\"_blank\">";

    echo "<div class=\"preview\">";

    echo "<img src=\"" . $file_list . "\" alt=\"picture\" class=\"packshot\" />";

    echo "</div>";

    echo "</a>";

    echo "<div class=\"title\"><p>" . $file_list . " (" . $file_list_size . "kb)</p></div>";

    echo "</div>";

    }

}

 ?>


尚方宝剑之说
浏览 161回答 1
1回答
随时随地看视频慕课网APP
我要回答