2013-03-10 71 views
0

如何在使用PHP的目录中显示文件夹的限制?下面的代码显示了所有文件夹,但我只想看到10个文件夹。在PHP中限制显示的目录

function folderlist() { 
    $startdir = './'; 
    $ignoredDirectory[] = '.'; 
    $ignoredDirectory[] = '..'; 
    if(is_dir($startdir)) { 
    if($dh = opendir($startdir)) { 
     while(($folder = readdir($dh)) !== false) { 
     if(!(array_search($folder, $ignoredDirectory) > -1)) { 
      if(filetype($startdir.$folder) == "dir") { 
      $mtime = filemtime($startdir.$folder); 
      $directorylist[$mtime]['name'] = $folder; 
      $directorylist[$mtime]['path'] = $startdir; 
      } 
     } 
     } 

     closedir($dh); 
    } 
    } 

    krsort($directorylist, SORT_NUMERIC); 
    return $directorylist; 
} 

$folders = folderlist(); 
foreach($folders as $folder) { 
    $path = $folder['path']; 
    $name = $folder['name']; 

    echo '<div class="urbangreymenu"><ul><li><a href="'.$path.'index.php?wallpapers='.$name.'" target="_parent">'.$name.'</a></li></ul></div>'; 
} 

回答

2

更改三行:

function folderlist($limit = 10) { 

和...

while (($folder = readdir($dh)) !== false && $limit) { 

和...

$limit--; 

一起:

function folderlist($limit = 10) { 
    $startdir = './'; 
    $ignoredDirectory[] = '.'; 
    $ignoredDirectory[] = '..'; 
    if (is_dir($startdir)) { 
     if ($dh = opendir($startdir)) { 
      while (($folder = readdir($dh)) !== false && $limit) { 
       if (!(array_search($folder,$ignoredDirectory) > -1)) { 
        if (filetype($startdir . $folder) == "dir") { 
         $mtime = filemtime($startdir . $folder); 
         $directorylist[$mtime]['name'] = $folder; 
         $directorylist[$mtime]['path'] = $startdir; 
         $limit--; 
        } 
       } 
      } 
      //Rest of code unchanged... 
+0

请原谅我在过去一分钟的编辑... :-) – 2013-03-10 07:38:58

+0

调用默认的folderlist()将使用$ limit = 10,如果您需要$ limit = 15,只需调用folderlist(15) – 2013-03-10 07:40:28

+0

谢谢亲爱的,现在工作正常 – user1796164 2013-03-10 07:42:50