douqianrou9079 2016-04-20 04:15
浏览 70
已采纳

使用php浏览文件夹

I am trying to make a code to navigate through a directory in PHP

function navigate($path){
    $directorio = $_SERVER['DOCUMENT_ROOT'] . '/' . $path;
    $scan = scandir($directorio);
    return $scan;
}
   session_start();
   $dir = $_SERVER['DOCUMENT_ROOT'] . '/';

if(ISSET($_POST['datei'])){
    echo $_POST['datei'];
    $_SESSION['actualdir'] = $dir . $_POST['datei'];    
    $scanner = navigate($_SESSION['actualdir']);
}
if(!ISSET($_POST['datei'])){
    $scanner = scandir($dir);
}

The $scan and $scanner variables are arrays that go to a dropdown to choose the next folder. However my code only works twice.

Example:

We start in folder.

Then the dropdown shows nextfolder

We are now in folder/nextfolder.

We choose anyfolder again.

The program goes to folder/anyfolder instead of folder/nextfolder/anyfolder.

Any ideas? I guess I should keep saving the current directory somehow. Yet I have no idea how to do it.

  • 写回答

1条回答 默认 最新

  • dongwei1855 2016-04-20 04:39
    关注

    You need to use recursive function to do that.

        function navigate($path){
              static $scanned = array();
              $dir = scandir($path,1);
    
              foreach ($dir as $obj) {
                  if(strlen($obj) > 2){
                      if(is_dir($path.$obj)){
                          //directory
                          $scanned = indir($path.$obj.'/');
                      } else {
                          //file
    
                      }
                  }
    
    
              }
              return $scanned;
          }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
编辑
预览

报告相同问题?

手机看
程序员都在用的中文IT技术交流社区

程序员都在用的中文IT技术交流社区

专业的中文 IT 技术社区,与千万技术人共成长

专业的中文 IT 技术社区,与千万技术人共成长

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!

客服 返回
顶部