2016-04-20 61 views
1

文件夾,我試圖做一個代碼通過目錄在PHP通過與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); 
} 

的$掃描和掃描儀$變量導航導航是去一​​個下拉菜單選擇下一個文件夾陣列。但是,我的代碼只能工作兩次。

例如:

我們從文件夾開始。

然後在下拉顯示nextfolder

我們現在是在文件夾/ nextfolder。

我們再次選擇任何文件夾。

程序進入文件夾/任何文件夾而不是文件夾/ nextfolder/anyfolder。

任何想法?我想我應該繼續以某種方式保存當前目錄。但我不知道該怎麼做。

+0

這裏您的目標是什麼?您可以使用循環導航到您的目的地。 – Rivers

回答

0

你需要使用遞歸函數來做到這一點。

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; 
     } 
+0

這個功能會給你遞歸文件夾 像文件夾/子文件夾和它的子文件夾 – Manmohan