2016-06-21 11 views
-1

私は過ごす(廃棄物)は、このひどいコードの2日間(それはいくつかのエラーを有していてもよい)、私は私の道documentosから自分のファイルと各ディレクトリの一覧を表示しようとしたは、注文PHPによってすべてのディレクトリとファイルをスキャン

$diretc [] = ('../documentos'); 
    $txt = ""; 

    function getDirContents($diret){ 
     for ($i=0; $i <sizeof($diret) ; $i++) { 
      $dir = $diret[$i]; 
      if(is_dir($dir)){ //lee si es un directorio 
       $GLOBALS['txt'] .= '<ul>'.$dir; 
       while(($archivo = readdir($dir)) !== false){ 
        if (is_dir($archivo)) { 
         $directorios[] = $archivo; 
        } 
        else if ($archivo != "." && $archivo != "..") { 
         $GLOBALS['txt'] .= '<li>'.$dir.DIRECTORY_SEPARATOR.$archivo.'</li>'; 
        } 
       } 
       $GLOBALS['txt'] .='</ul>'; 
      } 
     } 
     if (sizeof($directorios) > 0) { 
      getDirContents($directorios); 
     } 
     return $txt;  
    } 





echo getDirContents($diretc); 

私は木のようなファイルマネージャのようなものをすべて注文したい。this

+0

これは正しく動作しないのですか。 –

+0

すべての '$ GLOBALS ['txt']'を '$ txt'に置き換えてください。 '$ diret'は配列ではない文字列でなければなりません。 –

+0

@Ini&Dagon:あなたの関数に' global $ txt; 'を置くことを忘れないでください。 –

答えて

0

お手伝いをしよう。次のコードを試してください。

function listDir($path, $recursive = false) { 
    $recursive = ($recursive === true); 
    $invalidPaths = array('.', '..'); 
    $valid = is_dir($path); 
    if ($valid !== true) { 
     return array(); 
    } 
    $array = array(); 
    foreach(scandir($path) as $file) { 
     // Check for invalid paths 
     $invalid = in_array($file, $invalidPaths); 
     if ($invalid === true) { 
      continue; 
     } 
     // Format and add file 
     $filename = "$path/$file"; 
     array_push($array, $filename); 

     // Check for read dir recursive 
     $isDirectory = is_dir($file); 
     if ($isDirectory && !$recursive) { 
      continue; 
     } 

     // Add itens 
     $subDirArray = listDir($filename, $recursive); 
     $array = array_merge($array, $subDirArray); 
    } 
    return $array; 
} 

$path = '../documentos'; 
$pathList = listDir($path, true); 
foreach($pathList as $item) { 
    echo "<pre>$item</pre>"; 
} 
関連する問題