php
  • loops
  • scandir
  • 2015-12-09 55 views 1 likes 
    1
    $dirs = scandir("../public_html/"); 
    
    $subDirArr=array(); 
    
    foreach ($dirs as $currentIndex => $currentDir) { 
    
    
        if (is_dir($currentDir)) 
         if (!($currentDir[0] == ".")) 
          echo "<a href='../public_html/$currentDir'>$currentDir</a><br/>"; 
    
    
    } 
    

    所以我有了這個代碼,它可以掃描我的服務器和回聲了所有的子目錄(而不是文件)對我的public_html目錄,這樣我的列表可點擊的鏈接到我的子目錄。如何掃描目錄內的目錄在PHP循環

    我想要做的是當一個目錄被點擊,讓它顯示它的子目錄(如果有的話)。我無法弄清楚如何在邏輯上做到這一點。我可以在循環內的循環內編寫循環等,但我希望此代碼能夠工作,無論我添加多少個目錄。

    我怎麼能做到這一點?

    Endgoal是爲我的託管文件/文件夾有一個菜單系統。

    回答

    0

    像這樣的東西應該可以做到。您可以調整功能,任何需要:

    function getDirs($root) 
    { 
        foreach (scandir($root) as $dir) { 
         if (! in_array($dir, ['.', '..'])) { 
          $path = realpath($root . DIRECTORY_SEPARATOR . $dir); 
          if (is_dir($path)) { 
           echo $path . PHP_EOL; 
           getDirs($path); 
          } 
         } 
        } 
    } 
    
    getDirs("../public_html/"); 
    
    +0

    現在我只需要嘗試和理解......我非常新的PHP:P –

    +0

    @EricDavidSartor http://programmers.stackexchange.com/questions/ 25052/in-plain-english-what-is-recursion這可以幫助你理解遞歸 –

    相關問題