php 读目录以列表形式展示实例

本文章来给大家介绍利用php 读目录以列表形式展示,读取目录我们会使用到scandir,opendir,foreach,sizeof这几个常用的函数,下面我们直接看实例.

例1,代码如下:

  1. $getUrl = (emptyempty($_GET['url'])) ? './' : $_GET['url'].'/';
  2. function fileName($dir)
  3. {
  4. $fileAll = scandir($dir,0);
  5. $pathDir = $pathFile = array();
  6. $count = count($fileAll);
  7. if($count <= 2){
  8. echo "空目录<br />";
  9. }
  10. foreach($fileAll as $pdf){
  11. if(is_dir($dir.$pdf)){
  12. $pathDir[] = $pdf;
  13. }else{
  14. $pathFile[] = $pdf;
  15. }
  16. }
  17. foreach($pathDir as $pd){
  18. if($pd == '.' or $pd == '..') continue;
  19. echo "<a href="?url=$dir$pd">$pd</a><br />";
  20. }
  21. foreach($pathFile as $pf){
  22. echo "<a href="$dir$pf" target="_blank">$pf</a><br />";
  23. }
  24. if($dir != './'){
  25. $dir = rtrim($dir,'/');
  26. $dir = explode('/',$dir);
  27. unset($dir[sizeof($dir)-1]);
  28. $dir = implode('/',$dir);
  29. echo "<a href="?url=$dir">Go Back</a>";
  30. }
  31. }
  32. fileName($getUrl);

例2,代码如下:

  1. <?php
  2. /**
  3. * Goofy 2011-11-30
  4. * getDir()去文件夹列表,getFile()去对应文件夹下面的文件列表,二者的区别在于判断有没有“.”后缀的文件,其他都一样
  5. */
  6. //获取文件目录列表,该方法返回数组
  7. function getDir($dir) {
  8. $dirArray[]=NULL;
  9. if (false != ($handle = opendir ( $dir ))) {
  10. $i=0;
  11. while ( false !== ($file = readdir ( $handle )) ) {
  12. //去掉"“.”、“..”以及带“.xxx”后缀的文件
  13. if ($file != "." && $file != ".."&&!strpos($file,".")) {
  14. $dirArray[$i]=$file;
  15. $i++;
  16. }
  17. }
  18. //关闭句柄
  19. closedir ( $handle );
  20. }
  21. return $dirArray;
  22. }
  23. //获取文件列表
  24. function getFile($dir) {
  25. $fileArray[]=NULL;
  26. if (false != ($handle = opendir ( $dir ))) {
  27. $i=0;
  28. while ( false !== ($file = readdir ( $handle )) ) {
  29. //去掉"“.”、“..”以及带“.xxx”后缀的文件
  30. if ($file != "." && $file != ".."&&strpos($file,".")) {
  31. $fileArray[$i]="./imageroot/current/".$file;
  32. if($i==100){
  33. break;
  34. }
  35. $i++;
  36. }
  37. }
  38. //关闭句柄
  39. closedir ( $handle );
  40. }
  41. return $fileArray;
  42. }
  43. //调用方法getDir("./dir")……可以是绝对路径也可以是相对路径
  44. ?>